smbd: add fsp_search_ask_sharemode() and fsp_getinfo_ask_sharemode()
authorRalph Boehme <slow@samba.org>
Wed, 11 May 2022 16:09:10 +0000 (18:09 +0200)
committerJeremy Allison <jra@samba.org>
Fri, 9 Dec 2022 23:11:37 +0000 (23:11 +0000)
Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/files.c
source3/smbd/proto.h

index a52ef517e8dae41571ebb22d5f96a1ce63311889..f551bc793026f70135fd2e932e4790b81a8ee2ab 100644 (file)
@@ -2158,3 +2158,35 @@ struct files_struct *metadata_fsp(struct files_struct *fsp)
        }
        return fsp;
 }
+
+static bool fsp_generic_ask_sharemode(struct files_struct *fsp)
+{
+       if (fsp == NULL) {
+               return false;
+       }
+
+       if (fsp->posix_flags & FSP_POSIX_FLAGS_PATHNAMES) {
+               /* Always use filesystem for UNIX mtime query. */
+               return false;
+       }
+
+       return true;
+}
+
+bool fsp_search_ask_sharemode(struct files_struct *fsp)
+{
+       if (!fsp_generic_ask_sharemode(fsp)) {
+               return false;
+       }
+
+       return lp_smbd_search_ask_sharemode(SNUM(fsp->conn));
+}
+
+bool fsp_getinfo_ask_sharemode(struct files_struct *fsp)
+{
+       if (!fsp_generic_ask_sharemode(fsp)) {
+               return false;
+       }
+
+       return lp_smbd_getinfo_ask_sharemode(SNUM(fsp->conn));
+}
index cbf2cfc1d851c02f5cbd3ad48156acf9b239af7d..a9060aeafc109a5c81500b0726e5f22d272340f9 100644 (file)
@@ -424,6 +424,8 @@ size_t fsp_fullbasepath(struct files_struct *fsp, char *buf, size_t buflen);
 void fsp_set_base_fsp(struct files_struct *fsp, struct files_struct *base_fsp);
 bool fsp_is_alternate_stream(const struct files_struct *fsp);
 struct files_struct *metadata_fsp(struct files_struct *fsp);
+bool fsp_search_ask_sharemode(struct files_struct *fsp);
+bool fsp_getinfo_ask_sharemode(struct files_struct *fsp);
 
 NTSTATUS create_internal_fsp(connection_struct *conn,
                             const struct smb_filename *smb_fname,