diff --git a/fs/hfs/dir.c b/fs/hfs/dir.c index 17c22a8fd40ae1f8a2d59d031da8d9652ae8a36d..e0101b6fb0d73c4a9036a481f5aabd6ddbe213ce 100644 --- a/fs/hfs/dir.c +++ b/fs/hfs/dir.c @@ -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;