OSDN Git Service

hfs: SMP race on directory close()
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 6 May 2013 00:20:25 +0000 (20:20 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 6 May 2013 00:20:25 +0000 (20:20 -0400)
->open_dir_list needs protection...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/hfs/dir.c

index 17c22a8..e0101b6 100644 (file)
@@ -176,7 +176,9 @@ static int hfs_dir_release(struct inode *inode, struct file *file)
 {
        struct hfs_readdir_data *rd = file->private_data;
        if (rd) {
+               mutex_lock(&inode->i_mutex);
                list_del(&rd->list);
+               mutex_unlock(&inode->i_mutex);
                kfree(rd);
        }
        return 0;