From 89755dcace09b44b3aa024bf302d9b19b4c24cad Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Fri, 1 Oct 2010 05:45:25 +0200 Subject: [PATCH] hfsplus: protect readdir against removals from open_dir_list We already have i_mutex for readdir and the namespace operations that add entries to open_dir_list, the only thing that was missing was the removal in hfsplus_dir_release. Signed-off-by: Christoph Hellwig --- fs/hfsplus/dir.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/hfsplus/dir.c b/fs/hfsplus/dir.c index 1c81eedcab01..93fa45cc4810 100644 --- a/fs/hfsplus/dir.c +++ b/fs/hfsplus/dir.c @@ -231,7 +231,9 @@ static int hfsplus_dir_release(struct inode *inode, struct file *file) { struct hfsplus_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;