]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: Save a few lines in file_set_dosmode() with "goto done;"
authorVolker Lendecke <vl@samba.org>
Thu, 3 Mar 2022 20:49:47 +0000 (21:49 +0100)
committerRalph Boehme <slow@samba.org>
Fri, 4 Mar 2022 17:43:42 +0000 (17:43 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/smbd/dosmode.c

index 6b8d5c63008faa17a0e8f3d7fd9703f282e45c5d..b1e6fbc4fec57c5f414c055d03eca8346eb570b4 100644 (file)
@@ -958,13 +958,8 @@ int file_set_dosmode(connection_struct *conn,
        }
 
        if (NT_STATUS_IS_OK(status)) {
-               if (!newfile) {
-                       notify_fname(conn, NOTIFY_ACTION_MODIFIED,
-                               FILE_NOTIFY_CHANGE_ATTRIBUTES,
-                               smb_fname->base_name);
-               }
-               smb_fname->st.st_ex_mode = unixmode;
-               return 0;
+               ret = 0;
+               goto done;
        }
 
        /*
@@ -1039,13 +1034,7 @@ int file_set_dosmode(connection_struct *conn,
 
        ret = SMB_VFS_FCHMOD(smb_fname->fsp, unixmode);
        if (ret == 0) {
-               if (!newfile) {
-                       notify_fname(conn, NOTIFY_ACTION_MODIFIED,
-                                    FILE_NOTIFY_CHANGE_ATTRIBUTES,
-                                    smb_fname->base_name);
-               }
-               smb_fname->st.st_ex_mode = unixmode;
-               return 0;
+               goto done;
        }
 
        if((errno != EPERM) && (errno != EACCES))
@@ -1068,6 +1057,7 @@ int file_set_dosmode(connection_struct *conn,
        ret = SMB_VFS_FCHMOD(smb_fname->fsp, unixmode);
        unbecome_root();
 
+done:
        if (!newfile) {
                notify_fname(conn, NOTIFY_ACTION_MODIFIED,
                             FILE_NOTIFY_CHANGE_ATTRIBUTES,