Patch: S3-Add VFS Functions for setting and getting DOS Attributes

Uri Simchoni uri at
Mon Mar 21 05:06:59 UTC 2016

On 03/21/2016 12:53 AM, Richard Sharpe wrote:
> Hi folks,
> Here is the patch for consideration.
> I ran a make test on this and that seems to have succeeded.
Sorry for not noticing those things earlier - I could spot them in the 
preview patch, but I do have some comments:

*handle,+ bool (*set_dos_attributes_fn)(struct vfs_handle_struct *handle,
+ const struct smb_filename *smb_fname,
+ uint32_t dosmode);

Since those functions don't have POSIX semantics, wouldn't it be better 
to have them return NTSTATUS?

+static bool vfswrap_fset_dos_attributes(struct vfs_handle_struct + 
                                   struct files_struct *fsp,
+                                       uint32_t dosmode)
+       return set_ea_dos_attribute(handle->conn, fsp->fsp_name, dosmode);

I think the default here should be to come up with something that 
eventually calls fsetxattr, assuming the file is open. Otherwise there's 
no point in having this extra function.

@@ -893,8 +895,7 @@ NTSTATUS file_set_sparse(connection_struct *conn,

         /* Store the DOS attributes in an EA. */
-       if (!set_ea_dos_attribute(conn, fsp->fsp_name,
-                                 new_dosmode)) {
+       if (!SMB_VFS_FSET_DOS_ATTRIBUTES(conn, fsp, new_dosmode)) {
                 if (errno == 0) {
                         errno = EIO;

(shows the benefit of returning NTSTATUS but also - )

Assuming the SMB_VFS_FSET_DOS_ATTRIBUTES becomes fd-based, do we have 
enough guarantees here that this isn't a "stat open", i.e. that the fsp 
points to an open file? (should really get my mind wrapped around those 
stat opens...:))


More information about the samba-technical mailing list