]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Fix #7959 About OpenBSD compilation issue
authorEric Bollengier <eric@baculasystems.com>
Wed, 4 Aug 2021 08:03:04 +0000 (10:03 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:03 +0000 (09:03 +0100)
bacula/src/findlib/fstype.c
bacula/src/findlib/protos.h

index 2f6b80b390d0f8fabb5f2cbe73f509d3ed0fc783..e508ef4d54158704e990fde8ae0c50fa4773a0e0 100644 (file)
@@ -108,12 +108,16 @@ void add_mtab_item(void *user_ctx, struct stat *st, const char *fstype,
 /*
  * simple return fs type magic number or zero when error
  */
-uint32_t fstypeid(char *fname, FF_PKT *ff_pkt)
+static uint64_t fstypeid(char *fname, FF_PKT *ff_pkt)
 {
    struct statfs st;
 
    if (statfs(fname, &st) == 0) {
+#if defined (HAVE_OPENBSD_OS)
+      return (((uint64_t)st.f_fsid.val[0])<<32) | st.f_fsid.val[1];
+#else
       return st.f_type;
+#endif
    }
    return 0;
 }
@@ -150,7 +154,7 @@ bool fstype(char *fname, FF_PKT *ff_pkt, char *fs, int fslen)
 /*
  * simple return fs type magic number or zero when error
  */
-uint32_t fstypeid(char *fname, FF_PKT *ff_pkt)
+static uint64_t fstypeid(char *fname, FF_PKT *ff_pkt)
 {
    struct statvfs st;
 
@@ -193,7 +197,7 @@ bool fstype(char *fname, FF_PKT *ff_pkt, char *fs, int fslen)
 /*
  * simple return fs type magic number or zero when error
  */
-uint32_t fstypeid(char *fname, FF_PKT *ff_pkt)
+static uint64_t fstypeid(char *fname, FF_PKT *ff_pkt)
 {
    struct statfs st;
 
@@ -232,7 +236,7 @@ bool fstype(char *fname, FF_PKT *ff_pkt, char *fs, int fslen)
 /*
  * simple return fs type magic number or zero when error
  */
-uint32_t fstypeid(char *fname, FF_PKT *ff_pkt)
+static uint64_t fstypeid(char *fname, FF_PKT *ff_pkt)
 {
    struct statfs st;
 
@@ -390,7 +394,7 @@ bool fstype(FF_PKT *ff_pkt, char *fs, int fslen)
 /*
  * simple return fs type magic number
  */
-uint32_t fstypeid(char *fname, FF_PKT *ff_pkt)
+static uint64_t fstypeid(char *fname, FF_PKT *ff_pkt)
 {
    struct statvfs st;
 
@@ -424,7 +428,7 @@ bool fstype(char *fname, FF_PKT *ff_pkt, char *fs, int fslen)
 /*
  * simple return fs type magic number
  */
-uint32_t fstypeid(char *fname, FF_PKT *ff_pkt)
+static uint64_t fstypeid(char *fname, FF_PKT *ff_pkt)
 {
    struct statfs st;
 
@@ -496,7 +500,7 @@ bool fstype(FF_PKT *ff_pkt, char *fs, int fslen)
 }
 
 /* Not implemented for windows, used in ACL code */
-uint32_t fstypeid(char *fname, FF_PKT *ff_pkt)
+static uint64_t fstypeid(char *fname, FF_PKT *ff_pkt)
 {
    return 0;
 }
@@ -505,7 +509,7 @@ uint32_t fstypeid(char *fname, FF_PKT *ff_pkt)
 
 #else    /* No recognised OS */
 
-uint32_t fstypeid(char *fname, FF_PKT *ff_pkt)
+static uint64_t fstypeid(char *fname, FF_PKT *ff_pkt)
 {
    Dmsg0(10, "!!! fstypeid() not implemented for this OS. !!!\n");
    return 0;
@@ -635,9 +639,9 @@ bool check_current_fs(char *fname, FF_PKT *ff, const char *fstype_name)
 /*
  * compares current fstype from FF_PKT for required fstype_magic
  */
-bool check_current_fs(char *fname, FF_PKT *ff, uint32_t fstype_magic)
+bool check_current_fs(char *fname, FF_PKT *ff, uint64_t fstype_magic)
 {
-   uint32_t fsid;
+   uint64_t fsid;
 
    if (fstype_magic > 0){
       // get fsid for file
index 1a3f9bfe91e1f3d9033f730a7e6a42bf9d595764..110bb4014cd88c75ddad0d05c9c182a2222f0d62 100644 (file)
@@ -83,7 +83,6 @@ bool path_list_add(JCR *jcr, uint32_t len, char *fname);
 /* from fstype.c */
 bool fstype(FF_PKT *ff_pkt, char *fs, int fslen);
 bool fstype(char *fname, FF_PKT *ff_pkt, char *fs, int fslen);
-uint32_t fstypeid(char *fname, FF_PKT *ff_pkt);
 bool check_current_fs(char *fname, FF_PKT *ff, const char *fstype_name);
 bool check_current_fs(char *fname, FF_PKT *ff, uint32_t fstype_magic);