2023-09-29 10:13 GMT+09:00, ronnie sahlberg <ronniesahlberg@xxxxxxxxx>: > On Thu, 28 Sept 2023 at 00:44, Namjae Jeon <linkinjeon@xxxxxxxxxx> wrote: >> >> Cthon test fail with the following error. >> >> check for proper open/unlink operation >> nfsjunk files before unlink: >> -rwxr-xr-x 1 root root 0 9월 25 11:03 ./nfs2y8Jm9 >> ./nfs2y8Jm9 open; unlink ret = 0 >> nfsjunk files after unlink: >> -rwxr-xr-x 1 root root 0 9월 25 11:03 ./nfs2y8Jm9 >> data compare ok >> nfsjunk files after close: >> ls: cannot access './nfs2y8Jm9': No such file or directory >> special tests failed >> >> Cthon expect to second unlink failure when file is already unlinked. >> ksmbd can not allow to open file if flags of ksmbd inode is set with >> S_DEL_ON_CLS flags. >> >> Reported-by: Tom Talpey <tom@xxxxxxxxxx> >> Signed-off-by: Namjae Jeon <linkinjeon@xxxxxxxxxx> >> --- >> fs/smb/server/vfs_cache.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/fs/smb/server/vfs_cache.c b/fs/smb/server/vfs_cache.c >> index f41f8d6108ce..f2e2a7cc24a9 100644 >> --- a/fs/smb/server/vfs_cache.c >> +++ b/fs/smb/server/vfs_cache.c >> @@ -577,6 +577,11 @@ struct ksmbd_file *ksmbd_open_fd(struct ksmbd_work >> *work, struct file *filp) >> goto err_out; >> } >> >> + if (fp->f_ci->m_flags & S_DEL_ON_CLS) { >> + ret = -ENOENT; >> + goto err_out; >> + } >> + > > Is enoent the right error here? I assume that the file will still show No, It should be STATUS_DELETE_PENDING error. > in a directory listing so maybe eacces would be better? Right. but it should not be STATUS_ACCESS_DENIED error. So I will change the patch to return STATUS_DELETE_PENDING error to client on v2. Thanks for your review! > > >> ret = __open_id(&work->sess->file_table, fp, >> OPEN_ID_TYPE_VOLATILE_ID); >> if (ret) { >> ksmbd_inode_put(fp->f_ci); >> -- >> 2.25.1 >> >