Hi Namjae, Maybe I am missing something, but I do not see any mnt_want_write() in ksmbd at all. Is it well hidden somewhere? Thanks, Amir. On Thu, Mar 16, 2023 at 12:37 AM Namjae Jeon <linkinjeon@xxxxxxxxxx> wrote: > > v8: > - Don't call vfs_path_lookup() to avoid repeat lookup, Instead, lookup > last component after locking the parent that got from vfs_path_parent_lookup > helper. > v7: > - constify struct path. > - recreate patch-set base on recent Al's patches. > v6: > - rename __lookup_hash() to lookup_one_qstr_excl and export. > - change dget() to dget_parent() in unlink. > - lock parent of open file in smb2_open() to make file_present > worthable. > v5: > - add lock_rename_child() helper. > - remove d_is_symlink() check for new_path.dentry. > - use lock_rename_child() helper instead of lock_rename(). > - use dget() instead of dget_parent(). > - check that old_child is still hashed. > - directly check child->parent instead of using take_dentry_name_snapshot(). > v4: > - switch the order of 3/4 and 4/4 patch. > - fix vfs_path_parent_lookup() parameter description mismatch. > v3: > - use dget_parent + take_dentry_name_snapshot() to check stability of source > rename in smb2_vfs_rename(). > v2: > - add filename_lock to avoid racy issue from fp->filename. (Sergey Senozhatsky) > - fix warning: variable 'old_dentry' is used uninitialized (kernel > test robot) > > Al Viro (1): > fs: introduce lock_rename_child() helper > > Namjae Jeon (2): > ksmbd: remove internal.h include > ksmbd: fix racy issue from using ->d_parent and ->d_name > > fs/internal.h | 2 - > fs/ksmbd/smb2pdu.c | 147 ++++---------- > fs/ksmbd/vfs.c | 435 ++++++++++++++++++------------------------ > fs/ksmbd/vfs.h | 19 +- > fs/ksmbd/vfs_cache.c | 5 +- > fs/namei.c | 125 +++++++++--- > include/linux/namei.h | 9 + > 7 files changed, 342 insertions(+), 400 deletions(-) > > -- > 2.25.1 >