2023-06-13 19:57 GMT+09:00, Amir Goldstein <amir73il@xxxxxxxxx>: > Hi Namjae, Hi Amir, > > Maybe I am missing something, but I do not see any mnt_want_write() > in ksmbd at all. Is it well hidden somewhere? At a quick glance, We need to add it for ksmbd_vfs_unlink and ksmbd_vfs_rename. I'll look further into where else should I add it. Thanks for letting me know! > > 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 >> >