diff options
Diffstat (limited to 'libglusterfs')
| -rw-r--r-- | libglusterfs/src/common-utils.c | 24 | ||||
| -rw-r--r-- | libglusterfs/src/common-utils.h | 6 | 
2 files changed, 30 insertions, 0 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 56edc9f4a2b..45886dae3ee 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -4425,3 +4425,27 @@ fop_enum_to_string (glusterfs_fop_t fop)          return "UNKNOWNFOP";  } + +gf_boolean_t +gf_is_zero_filled_stat (struct iatt *buf) +{ +        if (!buf) +                return 1; + +        /* Do not use st_dev because it is transformed to store the xlator id +         * in place of the device number. Do not use st_ino because by this time +         * we've already mapped the root ino to 1 so it is not guaranteed to be +         * 0. +         */ +        if ((buf->ia_nlink == 0) && (buf->ia_ctime == 0)) +                return 1; + +        return 0; +} + +void +gf_zero_fill_stat (struct iatt *buf) +{ +        buf->ia_nlink = 0; +        buf->ia_ctime = 0; +} diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index b7d4845b138..620468e8b09 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -820,4 +820,10 @@ gf_nwrite (int fd, const void *buf, size_t count);  void _mask_cancellation (void);  void _unmask_cancellation (void); +gf_boolean_t +gf_is_zero_filled_stat (struct iatt *buf); + +void +gf_zero_fill_stat (struct iatt *buf); +  #endif /* _COMMON_UTILS_H */  | 
