4e1a327 9p: switch to ->iterate_shared()
0aba5d4 fat: switch to ->iterate_shared()
ecad6b01 romfs, squashfs: switch to ->iterate_shared()
0b68993 more trivial ->iterate_shared conversions
20e36ad lustre: don't need to lock inode in directory lseek
1a977ac kernfs: no point locking directory around that generic_file_llseek()
eaec113 configfs_readdir(): make safe under shared lock
fd76bf2 nfs: per-name sillyunlink exclusion
9ac3d3e nfs: switch to ->iterate_shared()
9cf843e lookup_open(): lock the parent shared unless O_CREAT is given
6fbd071 lookup_open(): put the dentry fed to ->lookup() or ->atomic_open() into in-lookup hash
12fa5e2 lookup_open(): expand the call of real_lookup()
384f26e atomic_open(): reorder and clean up a bit
1643b43 lookup_open(): lift the "fallback to !O_CREAT" logics from atomic_open()
b3d58ea atomic_open(): be paranoid about may_open() return value
0fb1ea0 atomic_open(): delay open_to_namei_flags() until the method call
fe9ec82 do_last(): take fput() on error after opening to out:
47f9dbd do_last(): get rid of duplicate ELOOP check
55db2fd atomic_open(): massage the create_error logics a bit
9d0728e atomic_open(): consolidate "overridden ENOENT" in open-yourself cases
5249e41 atomic_open(): don't bother with EEXIST check - it's done in do_last()
ce8644f lookup_open(): expand the call of vfs_create()
6ac0870 path_openat(): take O_PATH handling out of do_last()
3b0a3c1 simple local filesystems: switch to ->iterate_shared()
4e82901 dcache_{readdir,dir_lseek}() users: switch to ->iterate_shared
3125d26 cifs: switch to ->iterate_shared()
d9b3dbd fuse: switch to ->iterate_shared()
f50752e switch all procfs directories ->iterate_shared()
76aab3a proc_sys_fill_cache(): switch to d_alloc_parallel()
3781764 proc_fill_cache(): switch to d_alloc_parallel()
6192269 introduce a parallel variant of ->iterate()
63b6df1 give readdir(2)/getdents(2)/etc. uniform exclusion with lseek()
9902af7 parallel lookups: actual switch to rwsem
d9171b9 parallel lookups machinery, part 4 (and last)
94bdd65 parallel lookups machinery, part 3
84e710d parallel lookups machinery, part 2
85c7f81 beginning of transition to parallel lookups - marking in-lookup dentries
0568d70 __d_add(): don't drop/regain ->d_lock
1936386 lookup_slow(): bugger off on IS_DEADDIR() from the very beginning
d2caaa0 nfs: missing wakeup in nfs_unblock_sillyrename()
be5b82d make ext2_get_page() and friends work without external serialization
b9e1d43 ovl_lookup_real(): use lookup_one_len_unlocked()
383d4e8 reconnect_one(): use lookup_one_len_unlocked()
1ae1f3f reiserfs: open-code reiserfs_mutex_lock_safe() in reiserfs_unpack()
5ecfcb2 orangefs: don't open-code inode_lock/inode_unlock
7b9743e ocfs2: don't open-code inode_lock/inode_unlock
48f35b7 configfs_detach_prep(): make sure that wait_mutex won't go away
779b839 kernfs: use lookup_one_len_unlocked()
b968091 security_d_instantiate(): move to the point prior to attaching dentry to inode






3b0a3c1ac1598722fc289da19219d14f2a37b31f is the first bad commit
commit 3b0a3c1ac1598722fc289da19219d14f2a37b31f
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Wed Apr 20 23:42:46 2016 -0400

    simple local filesystems: switch to ->iterate_shared()
    
    no changes needed (XFS isn't simple, but it has the same parallelism
    in the interesting parts exercised from CXFS).
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

git bisect start
# good: [84695ffee7987ee1e581be4c4696e47e1a29403b] Merge getxattr prototype change into work.lookups
git bisect good 84695ffee7987ee1e581be4c4696e47e1a29403b
# bad: [4e1a327e6a210bf4082aeb84f64b0dd39a7284b7] 9p: switch to ->iterate_shared()
git bisect bad 4e1a327e6a210bf4082aeb84f64b0dd39a7284b7
# bad: [3b0a3c1ac1598722fc289da19219d14f2a37b31f] simple local filesystems: switch to ->iterate_shared()
git bisect bad 3b0a3c1ac1598722fc289da19219d14f2a37b31f
# good: [85c7f81041d57cfe9dc97f4680d5586b54534a39] beginning of transition to parallel lookups - marking in-lookup dentries
git bisect good 85c7f81041d57cfe9dc97f4680d5586b54534a39
# good: [6192269444ebfbfb42e23c7a6a93c76ffe4b5e51] introduce a parallel variant of ->iterate()
git bisect good 6192269444ebfbfb42e23c7a6a93c76ffe4b5e51
# good: [f50752eaa0b0be05431897a973b2ab05229cc2f5] switch all procfs directories ->iterate_shared()
git bisect good f50752eaa0b0be05431897a973b2ab05229cc2f5
# good: [3125d2650cae97d8f313ab696cd0ed66916e767a] cifs: switch to ->iterate_shared()
git bisect good 3125d2650cae97d8f313ab696cd0ed66916e767a
# good: [4e82901cd6d1af21ae232ae835c36d8230c809e8] dcache_{readdir,dir_lseek}() users: switch to ->iterate_shared
git bisect good 4e82901cd6d1af21ae232ae835c36d8230c809e8
# first bad commit: [3b0a3c1ac1598722fc289da19219d14f2a37b31f] simple local filesystems: switch to ->iterate_shared()
