aboutsummaryrefslogtreecommitdiff
path: root/fs/smb/server/vfs.h
diff options
context:
space:
mode:
authorNamjae Jeon <linkinjeon@kernel.org>2023-07-17 08:37:40 +0900
committerSteve French <stfrench@microsoft.com>2023-07-23 10:25:11 -0500
commit2b57a4322b1b14348940744fdc02f9a86cbbdbeb (patch)
tree4a2e6816c749b031393636fe31091f4c17c76173 /fs/smb/server/vfs.h
parent0266a2f791294e0b4ba36f4a1d89b8615ea3cac0 (diff)
ksmbd: check if a mount point is crossed during path lookup
Since commit 74d7970febf7 ("ksmbd: fix racy issue from using ->d_parent and ->d_name"), ksmbd can not lookup cross mount points. If last component is a cross mount point during path lookup, check if it is crossed to follow it down. And allow path lookup to cross a mount point when a crossmnt parameter is set to 'yes' in smb.conf. Cc: stable@vger.kernel.org Fixes: 74d7970febf7 ("ksmbd: fix racy issue from using ->d_parent and ->d_name") Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb/server/vfs.h')
-rw-r--r--fs/smb/server/vfs.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/smb/server/vfs.h b/fs/smb/server/vfs.h
index 80039312c255..72f9fb4b48d1 100644
--- a/fs/smb/server/vfs.h
+++ b/fs/smb/server/vfs.h
@@ -115,8 +115,8 @@ int ksmbd_vfs_xattr_stream_name(char *stream_name, char **xattr_stream_name,
int ksmbd_vfs_remove_xattr(struct mnt_idmap *idmap,
const struct path *path, char *attr_name);
int ksmbd_vfs_kern_path_locked(struct ksmbd_work *work, char *name,
- unsigned int flags, struct path *path,
- bool caseless);
+ unsigned int flags, struct path *parent_path,
+ struct path *path, bool caseless);
struct dentry *ksmbd_vfs_kern_path_create(struct ksmbd_work *work,
const char *name,
unsigned int flags,