Loading fs/smb/server/smb2pdu.c +14 −11 Original line number Diff line number Diff line Loading @@ -2951,6 +2951,8 @@ int smb2_open(struct ksmbd_work *work) } ksmbd_debug(SMB, "converted name = %s\n", name); if (posix_ctxt == false) { if (strchr(name, ':')) { if (!test_share_config_flag(work->tcon->share_conf, KSMBD_SHARE_FLAG_STREAMS)) { Loading @@ -2962,7 +2964,6 @@ int smb2_open(struct ksmbd_work *work) goto err_out2; } if (posix_ctxt == false) { rc = ksmbd_validate_filename(name); if (rc < 0) goto err_out2; Loading Loading @@ -3443,6 +3444,8 @@ int smb2_open(struct ksmbd_work *work) fp->attrib_only = !(req->DesiredAccess & ~(FILE_READ_ATTRIBUTES_LE | FILE_WRITE_ATTRIBUTES_LE | FILE_SYNCHRONIZE_LE)); fp->is_posix_ctxt = posix_ctxt; /* fp should be searchable through ksmbd_inode.m_fp_list * after daccess, saccess, attrib_only, and stream are * initialized. Loading Loading @@ -5988,7 +5991,7 @@ static int smb2_rename(struct ksmbd_work *work, if (IS_ERR(new_name)) return PTR_ERR(new_name); if (strchr(new_name, ':')) { if (fp->is_posix_ctxt == false && strchr(new_name, ':')) { int s_type; char *xattr_stream_name, *stream_name = NULL; size_t xattr_stream_size; Loading fs/smb/server/vfs_cache.h +2 −0 Original line number Diff line number Diff line Loading @@ -112,6 +112,8 @@ struct ksmbd_file { bool is_durable; bool is_persistent; bool is_resilient; bool is_posix_ctxt; }; static inline void set_ctx_actor(struct dir_context *ctx, Loading Loading
fs/smb/server/smb2pdu.c +14 −11 Original line number Diff line number Diff line Loading @@ -2951,6 +2951,8 @@ int smb2_open(struct ksmbd_work *work) } ksmbd_debug(SMB, "converted name = %s\n", name); if (posix_ctxt == false) { if (strchr(name, ':')) { if (!test_share_config_flag(work->tcon->share_conf, KSMBD_SHARE_FLAG_STREAMS)) { Loading @@ -2962,7 +2964,6 @@ int smb2_open(struct ksmbd_work *work) goto err_out2; } if (posix_ctxt == false) { rc = ksmbd_validate_filename(name); if (rc < 0) goto err_out2; Loading Loading @@ -3443,6 +3444,8 @@ int smb2_open(struct ksmbd_work *work) fp->attrib_only = !(req->DesiredAccess & ~(FILE_READ_ATTRIBUTES_LE | FILE_WRITE_ATTRIBUTES_LE | FILE_SYNCHRONIZE_LE)); fp->is_posix_ctxt = posix_ctxt; /* fp should be searchable through ksmbd_inode.m_fp_list * after daccess, saccess, attrib_only, and stream are * initialized. Loading Loading @@ -5988,7 +5991,7 @@ static int smb2_rename(struct ksmbd_work *work, if (IS_ERR(new_name)) return PTR_ERR(new_name); if (strchr(new_name, ':')) { if (fp->is_posix_ctxt == false && strchr(new_name, ':')) { int s_type; char *xattr_stream_name, *stream_name = NULL; size_t xattr_stream_size; Loading
fs/smb/server/vfs_cache.h +2 −0 Original line number Diff line number Diff line Loading @@ -112,6 +112,8 @@ struct ksmbd_file { bool is_durable; bool is_persistent; bool is_resilient; bool is_posix_ctxt; }; static inline void set_ctx_actor(struct dir_context *ctx, Loading