From 9717a91b01feda644f45fd63624a641385ef8f2d Mon Sep 17 00:00:00 2001 From: Al Viro Date: Thu, 12 May 2016 20:13:50 -0400 Subject: hfs: switch to ->iterate_shared() exact parallel of hfsplus analogue Signed-off-by: Al Viro --- fs/hfs/catalog.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'fs/hfs/catalog.c') diff --git a/fs/hfs/catalog.c b/fs/hfs/catalog.c index 1eb5d415d434..98cde8ba5dc2 100644 --- a/fs/hfs/catalog.c +++ b/fs/hfs/catalog.c @@ -240,10 +240,13 @@ int hfs_cat_delete(u32 cnid, struct inode *dir, struct qstr *str) } } + /* we only need to take spinlock for exclusion with ->release() */ + spin_lock(&HFS_I(dir)->open_dir_lock); list_for_each_entry(rd, &HFS_I(dir)->open_dir_list, list) { if (fd.tree->keycmp(fd.search_key, (void *)&rd->key) < 0) rd->file->f_pos--; } + spin_unlock(&HFS_I(dir)->open_dir_lock); res = hfs_brec_remove(&fd); if (res) -- cgit v1.2.3