summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/iatt.h
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs/src/iatt.h')
-rw-r--r--libglusterfs/src/iatt.h632
1 files changed, 311 insertions, 321 deletions
diff --git a/libglusterfs/src/iatt.h b/libglusterfs/src/iatt.h
index 500ccb01324..db366472970 100644
--- a/libglusterfs/src/iatt.h
+++ b/libglusterfs/src/iatt.h
@@ -8,7 +8,6 @@
cases as published by the Free Software Foundation.
*/
-
#ifndef _IATT_H
#define _IATT_H
@@ -23,90 +22,90 @@
#include "compat-uuid.h"
typedef enum {
- IA_INVAL = 0,
- IA_IFREG,
- IA_IFDIR,
- IA_IFLNK,
- IA_IFBLK,
- IA_IFCHR,
- IA_IFIFO,
- IA_IFSOCK
+ IA_INVAL = 0,
+ IA_IFREG,
+ IA_IFDIR,
+ IA_IFLNK,
+ IA_IFBLK,
+ IA_IFCHR,
+ IA_IFIFO,
+ IA_IFSOCK
} ia_type_t;
typedef struct {
- uint8_t suid:1;
- uint8_t sgid:1;
- uint8_t sticky:1;
- struct {
- uint8_t read:1;
- uint8_t write:1;
- uint8_t exec:1;
- } owner, group, other;
+ uint8_t suid : 1;
+ uint8_t sgid : 1;
+ uint8_t sticky : 1;
+ struct {
+ uint8_t read : 1;
+ uint8_t write : 1;
+ uint8_t exec : 1;
+ } owner, group, other;
} ia_prot_t;
struct iatt {
- uint64_t ia_flags;
- uint64_t ia_ino; /* inode number */
- uint64_t ia_dev; /* backing device ID */
- uint64_t ia_rdev; /* device ID (if special file) */
- uint64_t ia_size; /* file size in bytes */
- uint32_t ia_nlink; /* Link count */
- uint32_t ia_uid; /* user ID of owner */
- uint32_t ia_gid; /* group ID of owner */
- uint32_t ia_blksize; /* blocksize for filesystem I/O */
- uint64_t ia_blocks; /* number of 512B blocks allocated */
- int64_t ia_atime; /* last access time */
- int64_t ia_mtime; /* last modification time */
- int64_t ia_ctime; /* last status change time */
- int64_t ia_btime; /* creation time. Fill using statx */
- uint32_t ia_atime_nsec;
- uint32_t ia_mtime_nsec;
- uint32_t ia_ctime_nsec;
- uint32_t ia_btime_nsec;
- uint64_t ia_attributes; /* chattr related:compressed, immutable,
- * append only, encrypted etc.*/
- uint64_t ia_attributes_mask; /* Mask for the attributes */
-
- uuid_t ia_gfid;
- ia_type_t ia_type; /* type of file */
- ia_prot_t ia_prot; /* protection */
+ uint64_t ia_flags;
+ uint64_t ia_ino; /* inode number */
+ uint64_t ia_dev; /* backing device ID */
+ uint64_t ia_rdev; /* device ID (if special file) */
+ uint64_t ia_size; /* file size in bytes */
+ uint32_t ia_nlink; /* Link count */
+ uint32_t ia_uid; /* user ID of owner */
+ uint32_t ia_gid; /* group ID of owner */
+ uint32_t ia_blksize; /* blocksize for filesystem I/O */
+ uint64_t ia_blocks; /* number of 512B blocks allocated */
+ int64_t ia_atime; /* last access time */
+ int64_t ia_mtime; /* last modification time */
+ int64_t ia_ctime; /* last status change time */
+ int64_t ia_btime; /* creation time. Fill using statx */
+ uint32_t ia_atime_nsec;
+ uint32_t ia_mtime_nsec;
+ uint32_t ia_ctime_nsec;
+ uint32_t ia_btime_nsec;
+ uint64_t ia_attributes; /* chattr related:compressed, immutable,
+ * append only, encrypted etc.*/
+ uint64_t ia_attributes_mask; /* Mask for the attributes */
+
+ uuid_t ia_gfid;
+ ia_type_t ia_type; /* type of file */
+ ia_prot_t ia_prot; /* protection */
};
struct old_iatt {
- uint64_t ia_ino; /* inode number */
- uuid_t ia_gfid;
- uint64_t ia_dev; /* backing device ID */
- ia_type_t ia_type; /* type of file */
- ia_prot_t ia_prot; /* protection */
- uint32_t ia_nlink; /* Link count */
- uint32_t ia_uid; /* user ID of owner */
- uint32_t ia_gid; /* group ID of owner */
- uint64_t ia_rdev; /* device ID (if special file) */
- uint64_t ia_size; /* file size in bytes */
- uint32_t ia_blksize; /* blocksize for filesystem I/O */
- uint64_t ia_blocks; /* number of 512B blocks allocated */
- uint32_t ia_atime; /* last access time */
- uint32_t ia_atime_nsec;
- uint32_t ia_mtime; /* last modification time */
- uint32_t ia_mtime_nsec;
- uint32_t ia_ctime; /* last status change time */
- uint32_t ia_ctime_nsec;
+ uint64_t ia_ino; /* inode number */
+ uuid_t ia_gfid;
+ uint64_t ia_dev; /* backing device ID */
+ ia_type_t ia_type; /* type of file */
+ ia_prot_t ia_prot; /* protection */
+ uint32_t ia_nlink; /* Link count */
+ uint32_t ia_uid; /* user ID of owner */
+ uint32_t ia_gid; /* group ID of owner */
+ uint64_t ia_rdev; /* device ID (if special file) */
+ uint64_t ia_size; /* file size in bytes */
+ uint32_t ia_blksize; /* blocksize for filesystem I/O */
+ uint64_t ia_blocks; /* number of 512B blocks allocated */
+ uint32_t ia_atime; /* last access time */
+ uint32_t ia_atime_nsec;
+ uint32_t ia_mtime; /* last modification time */
+ uint32_t ia_mtime_nsec;
+ uint32_t ia_ctime; /* last status change time */
+ uint32_t ia_ctime_nsec;
};
/* 64-bit mask for valid members in struct iatt. */
-#define IATT_TYPE 0x0000000000000001U
-#define IATT_MODE 0x0000000000000002U
-#define IATT_NLINK 0x0000000000000004U
-#define IATT_UID 0x0000000000000008U
-#define IATT_GID 0x0000000000000010U
-#define IATT_ATIME 0x0000000000000020U
-#define IATT_MTIME 0x0000000000000040U
-#define IATT_CTIME 0x0000000000000080U
-#define IATT_INO 0x0000000000000100U
-#define IATT_SIZE 0x0000000000000200U
-#define IATT_BLOCKS 0x0000000000000400U
-#define IATT_BTIME 0x0000000000000800U
-#define IATT_GFID 0x0000000000001000U
+#define IATT_TYPE 0x0000000000000001U
+#define IATT_MODE 0x0000000000000002U
+#define IATT_NLINK 0x0000000000000004U
+#define IATT_UID 0x0000000000000008U
+#define IATT_GID 0x0000000000000010U
+#define IATT_ATIME 0x0000000000000020U
+#define IATT_MTIME 0x0000000000000040U
+#define IATT_CTIME 0x0000000000000080U
+#define IATT_INO 0x0000000000000100U
+#define IATT_SIZE 0x0000000000000200U
+#define IATT_BLOCKS 0x0000000000000400U
+#define IATT_BTIME 0x0000000000000800U
+#define IATT_GFID 0x0000000000001000U
/* Macros for checking validity of struct iatt members.*/
#define IATT_TYPE_VALID(iaflags) (iaflags & IATT_TYPE)
@@ -132,339 +131,330 @@ struct old_iatt {
#define IA_ISSOCK(t) (t == IA_IFSOCK)
#define IA_ISINVAL(t) (t == IA_INVAL)
-#define IA_PROT_RUSR(prot) ((prot).owner.read == 1)
-#define IA_PROT_WUSR(prot) ((prot).owner.write == 1)
-#define IA_PROT_XUSR(prot) ((prot).owner.exec == 1)
+#define IA_PROT_RUSR(prot) ((prot).owner.read == 1)
+#define IA_PROT_WUSR(prot) ((prot).owner.write == 1)
+#define IA_PROT_XUSR(prot) ((prot).owner.exec == 1)
-#define IA_PROT_RGRP(prot) ((prot).group.read == 1)
-#define IA_PROT_WGRP(prot) ((prot).group.write == 1)
-#define IA_PROT_XGRP(prot) ((prot).group.exec == 1)
+#define IA_PROT_RGRP(prot) ((prot).group.read == 1)
+#define IA_PROT_WGRP(prot) ((prot).group.write == 1)
+#define IA_PROT_XGRP(prot) ((prot).group.exec == 1)
-#define IA_PROT_ROTH(prot) ((prot).other.read == 1)
-#define IA_PROT_WOTH(prot) ((prot).other.write == 1)
-#define IA_PROT_XOTH(prot) ((prot).other.exec == 1)
+#define IA_PROT_ROTH(prot) ((prot).other.read == 1)
+#define IA_PROT_WOTH(prot) ((prot).other.write == 1)
+#define IA_PROT_XOTH(prot) ((prot).other.exec == 1)
-#define IA_PROT_SUID(prot) ((prot).suid == 1)
-#define IA_PROT_SGID(prot) ((prot).sgid == 1)
-#define IA_PROT_STCKY(prot) ((prot).sticky == 1)
+#define IA_PROT_SUID(prot) ((prot).suid == 1)
+#define IA_PROT_SGID(prot) ((prot).sgid == 1)
+#define IA_PROT_STCKY(prot) ((prot).sticky == 1)
-#define IA_FILE_OR_DIR(t) (IA_ISREG(t) || IA_ISDIR(t))
+#define IA_FILE_OR_DIR(t) (IA_ISREG(t) || IA_ISDIR(t))
static inline uint32_t
-ia_major (uint64_t ia_dev)
+ia_major(uint64_t ia_dev)
{
- return (uint32_t) (ia_dev >> 32);
+ return (uint32_t)(ia_dev >> 32);
}
-
static inline uint32_t
-ia_minor (uint64_t ia_dev)
+ia_minor(uint64_t ia_dev)
{
- return (uint32_t) (ia_dev & 0xffffffff);
+ return (uint32_t)(ia_dev & 0xffffffff);
}
-
static inline uint64_t
-ia_makedev (uint32_t ia_maj, uint32_t ia_min)
+ia_makedev(uint32_t ia_maj, uint32_t ia_min)
{
- return ((((uint64_t) ia_maj) << 32) | ia_min);
+ return ((((uint64_t)ia_maj) << 32) | ia_min);
}
-
static inline ia_prot_t
-ia_prot_from_st_mode (mode_t mode)
+ia_prot_from_st_mode(mode_t mode)
{
- ia_prot_t ia_prot = {0, };
-
- if (mode & S_ISUID)
- ia_prot.suid = 1;
- if (mode & S_ISGID)
- ia_prot.sgid = 1;
- if (mode & S_ISVTX)
- ia_prot.sticky = 1;
-
- if (mode & S_IRUSR)
- ia_prot.owner.read = 1;
- if (mode & S_IWUSR)
- ia_prot.owner.write = 1;
- if (mode & S_IXUSR)
- ia_prot.owner.exec = 1;
-
- if (mode & S_IRGRP)
- ia_prot.group.read = 1;
- if (mode & S_IWGRP)
- ia_prot.group.write = 1;
- if (mode & S_IXGRP)
- ia_prot.group.exec = 1;
-
- if (mode & S_IROTH)
- ia_prot.other.read = 1;
- if (mode & S_IWOTH)
- ia_prot.other.write = 1;
- if (mode & S_IXOTH)
- ia_prot.other.exec = 1;
-
- return ia_prot;
+ ia_prot_t ia_prot = {
+ 0,
+ };
+
+ if (mode & S_ISUID)
+ ia_prot.suid = 1;
+ if (mode & S_ISGID)
+ ia_prot.sgid = 1;
+ if (mode & S_ISVTX)
+ ia_prot.sticky = 1;
+
+ if (mode & S_IRUSR)
+ ia_prot.owner.read = 1;
+ if (mode & S_IWUSR)
+ ia_prot.owner.write = 1;
+ if (mode & S_IXUSR)
+ ia_prot.owner.exec = 1;
+
+ if (mode & S_IRGRP)
+ ia_prot.group.read = 1;
+ if (mode & S_IWGRP)
+ ia_prot.group.write = 1;
+ if (mode & S_IXGRP)
+ ia_prot.group.exec = 1;
+
+ if (mode & S_IROTH)
+ ia_prot.other.read = 1;
+ if (mode & S_IWOTH)
+ ia_prot.other.write = 1;
+ if (mode & S_IXOTH)
+ ia_prot.other.exec = 1;
+
+ return ia_prot;
}
-
static inline ia_type_t
-ia_type_from_st_mode (mode_t mode)
+ia_type_from_st_mode(mode_t mode)
{
- ia_type_t type = IA_INVAL;
-
- if (S_ISREG (mode))
- type = IA_IFREG;
- if (S_ISDIR (mode))
- type = IA_IFDIR;
- if (S_ISLNK (mode))
- type = IA_IFLNK;
- if (S_ISBLK (mode))
- type = IA_IFBLK;
- if (S_ISCHR (mode))
- type = IA_IFCHR;
- if (S_ISFIFO (mode))
- type = IA_IFIFO;
- if (S_ISSOCK (mode))
- type = IA_IFSOCK;
-
- return type;
+ ia_type_t type = IA_INVAL;
+
+ if (S_ISREG(mode))
+ type = IA_IFREG;
+ if (S_ISDIR(mode))
+ type = IA_IFDIR;
+ if (S_ISLNK(mode))
+ type = IA_IFLNK;
+ if (S_ISBLK(mode))
+ type = IA_IFBLK;
+ if (S_ISCHR(mode))
+ type = IA_IFCHR;
+ if (S_ISFIFO(mode))
+ type = IA_IFIFO;
+ if (S_ISSOCK(mode))
+ type = IA_IFSOCK;
+
+ return type;
}
-
static inline uint32_t
-st_mode_prot_from_ia (ia_prot_t prot)
+st_mode_prot_from_ia(ia_prot_t prot)
{
- uint32_t prot_bit = 0;
-
- if (prot.suid)
- prot_bit |= S_ISUID;
- if (prot.sgid)
- prot_bit |= S_ISGID;
- if (prot.sticky)
- prot_bit |= S_ISVTX;
-
- if (prot.owner.read)
- prot_bit |= S_IRUSR;
- if (prot.owner.write)
- prot_bit |= S_IWUSR;
- if (prot.owner.exec)
- prot_bit |= S_IXUSR;
-
- if (prot.group.read)
- prot_bit |= S_IRGRP;
- if (prot.group.write)
- prot_bit |= S_IWGRP;
- if (prot.group.exec)
- prot_bit |= S_IXGRP;
-
- if (prot.other.read)
- prot_bit |= S_IROTH;
- if (prot.other.write)
- prot_bit |= S_IWOTH;
- if (prot.other.exec)
- prot_bit |= S_IXOTH;
-
- return prot_bit;
+ uint32_t prot_bit = 0;
+
+ if (prot.suid)
+ prot_bit |= S_ISUID;
+ if (prot.sgid)
+ prot_bit |= S_ISGID;
+ if (prot.sticky)
+ prot_bit |= S_ISVTX;
+
+ if (prot.owner.read)
+ prot_bit |= S_IRUSR;
+ if (prot.owner.write)
+ prot_bit |= S_IWUSR;
+ if (prot.owner.exec)
+ prot_bit |= S_IXUSR;
+
+ if (prot.group.read)
+ prot_bit |= S_IRGRP;
+ if (prot.group.write)
+ prot_bit |= S_IWGRP;
+ if (prot.group.exec)
+ prot_bit |= S_IXGRP;
+
+ if (prot.other.read)
+ prot_bit |= S_IROTH;
+ if (prot.other.write)
+ prot_bit |= S_IWOTH;
+ if (prot.other.exec)
+ prot_bit |= S_IXOTH;
+
+ return prot_bit;
}
-
static inline mode_t
-st_mode_from_ia (ia_prot_t prot, ia_type_t type)
+st_mode_from_ia(ia_prot_t prot, ia_type_t type)
{
- mode_t st_mode = 0;
- uint32_t type_bit = 0;
- uint32_t prot_bit = 0;
+ mode_t st_mode = 0;
+ uint32_t type_bit = 0;
+ uint32_t prot_bit = 0;
- switch (type) {
+ switch (type) {
case IA_IFREG:
- type_bit = S_IFREG;
- break;
+ type_bit = S_IFREG;
+ break;
case IA_IFDIR:
- type_bit = S_IFDIR;
- break;
+ type_bit = S_IFDIR;
+ break;
case IA_IFLNK:
- type_bit = S_IFLNK;
- break;
+ type_bit = S_IFLNK;
+ break;
case IA_IFBLK:
- type_bit = S_IFBLK;
- break;
+ type_bit = S_IFBLK;
+ break;
case IA_IFCHR:
- type_bit = S_IFCHR;
- break;
+ type_bit = S_IFCHR;
+ break;
case IA_IFIFO:
- type_bit = S_IFIFO;
- break;
+ type_bit = S_IFIFO;
+ break;
case IA_IFSOCK:
- type_bit = S_IFSOCK;
- break;
+ type_bit = S_IFSOCK;
+ break;
case IA_INVAL:
- break;
- }
+ break;
+ }
- prot_bit = st_mode_prot_from_ia (prot);
+ prot_bit = st_mode_prot_from_ia(prot);
- st_mode = (type_bit | prot_bit);
+ st_mode = (type_bit | prot_bit);
- return st_mode;
+ return st_mode;
}
-
static inline int
-iatt_from_stat (struct iatt *iatt, struct stat *stat)
+iatt_from_stat(struct iatt *iatt, struct stat *stat)
{
- iatt->ia_dev = stat->st_dev;
- iatt->ia_ino = stat->st_ino;
+ iatt->ia_dev = stat->st_dev;
+ iatt->ia_ino = stat->st_ino;
- iatt->ia_type = ia_type_from_st_mode (stat->st_mode);
- iatt->ia_prot = ia_prot_from_st_mode (stat->st_mode);
+ iatt->ia_type = ia_type_from_st_mode(stat->st_mode);
+ iatt->ia_prot = ia_prot_from_st_mode(stat->st_mode);
- iatt->ia_nlink = stat->st_nlink;
- iatt->ia_uid = stat->st_uid;
- iatt->ia_gid = stat->st_gid;
+ iatt->ia_nlink = stat->st_nlink;
+ iatt->ia_uid = stat->st_uid;
+ iatt->ia_gid = stat->st_gid;
- iatt->ia_rdev = ia_makedev (major (stat->st_rdev),
- minor (stat->st_rdev));
+ iatt->ia_rdev = ia_makedev(major(stat->st_rdev), minor(stat->st_rdev));
- iatt->ia_size = stat->st_size;
- iatt->ia_blksize = stat->st_blksize;
- iatt->ia_blocks = stat->st_blocks;
+ iatt->ia_size = stat->st_size;
+ iatt->ia_blksize = stat->st_blksize;
+ iatt->ia_blocks = stat->st_blocks;
- /* There is a possibility that the backend FS (like XFS) can
- allocate blocks beyond EOF for better performance reasons, which
- results in 'st_blocks' with higher values than what is consumed by
- the file descriptor. This would break few logic inside GlusterFS,
- like quota behavior etc, thus we need the exact number of blocks
- which are consumed by the file to the higher layers inside GlusterFS.
- Currently, this logic won't work for sparse files (ie, file with
- holes)
- */
- {
- uint64_t maxblocks;
+ /* There is a possibility that the backend FS (like XFS) can
+ allocate blocks beyond EOF for better performance reasons, which
+ results in 'st_blocks' with higher values than what is consumed by
+ the file descriptor. This would break few logic inside GlusterFS,
+ like quota behavior etc, thus we need the exact number of blocks
+ which are consumed by the file to the higher layers inside GlusterFS.
+ Currently, this logic won't work for sparse files (ie, file with
+ holes)
+ */
+ {
+ uint64_t maxblocks;
- maxblocks = (iatt->ia_size + 511) / 512;
+ maxblocks = (iatt->ia_size + 511) / 512;
- if (iatt->ia_blocks > maxblocks)
- iatt->ia_blocks = maxblocks;
- }
+ if (iatt->ia_blocks > maxblocks)
+ iatt->ia_blocks = maxblocks;
+ }
- iatt->ia_atime = stat->st_atime;
- iatt->ia_atime_nsec = ST_ATIM_NSEC (stat);
+ iatt->ia_atime = stat->st_atime;
+ iatt->ia_atime_nsec = ST_ATIM_NSEC(stat);
- iatt->ia_mtime = stat->st_mtime;
- iatt->ia_mtime_nsec = ST_MTIM_NSEC (stat);
+ iatt->ia_mtime = stat->st_mtime;
+ iatt->ia_mtime_nsec = ST_MTIM_NSEC(stat);
- iatt->ia_ctime = stat->st_ctime;
- iatt->ia_ctime_nsec = ST_CTIM_NSEC (stat);
+ iatt->ia_ctime = stat->st_ctime;
+ iatt->ia_ctime_nsec = ST_CTIM_NSEC(stat);
- /* Setting IATT_INO in ia_flags is done in posix_fill_ino_from_gfid. */
- iatt->ia_flags = iatt->ia_flags | IATT_TYPE | IATT_MODE | IATT_NLINK |
- IATT_UID | IATT_GID | IATT_SIZE | IATT_BLOCKS |
- IATT_ATIME | IATT_MTIME | IATT_CTIME;
+ /* Setting IATT_INO in ia_flags is done in posix_fill_ino_from_gfid. */
+ iatt->ia_flags = iatt->ia_flags | IATT_TYPE | IATT_MODE | IATT_NLINK |
+ IATT_UID | IATT_GID | IATT_SIZE | IATT_BLOCKS |
+ IATT_ATIME | IATT_MTIME | IATT_CTIME;
- return 0;
+ return 0;
}
-
static inline int
-iatt_to_stat (struct iatt *iatt, struct stat *stat)
+iatt_to_stat(struct iatt *iatt, struct stat *stat)
{
- stat->st_dev = iatt->ia_dev;
- stat->st_ino = iatt->ia_ino;
+ stat->st_dev = iatt->ia_dev;
+ stat->st_ino = iatt->ia_ino;
- stat->st_mode = st_mode_from_ia (iatt->ia_prot, iatt->ia_type);
+ stat->st_mode = st_mode_from_ia(iatt->ia_prot, iatt->ia_type);
- stat->st_nlink = iatt->ia_nlink;
- stat->st_uid = iatt->ia_uid;
- stat->st_gid = iatt->ia_gid;
+ stat->st_nlink = iatt->ia_nlink;
+ stat->st_uid = iatt->ia_uid;
+ stat->st_gid = iatt->ia_gid;
- stat->st_rdev = makedev (ia_major (iatt->ia_rdev),
- ia_minor (iatt->ia_rdev));
+ stat->st_rdev = makedev(ia_major(iatt->ia_rdev), ia_minor(iatt->ia_rdev));
- stat->st_size = iatt->ia_size;
- stat->st_blksize = iatt->ia_blksize;
- stat->st_blocks = iatt->ia_blocks;
+ stat->st_size = iatt->ia_size;
+ stat->st_blksize = iatt->ia_blksize;
+ stat->st_blocks = iatt->ia_blocks;
- stat->st_atime = iatt->ia_atime;
- ST_ATIM_NSEC_SET (stat, iatt->ia_atime_nsec);
+ stat->st_atime = iatt->ia_atime;
+ ST_ATIM_NSEC_SET(stat, iatt->ia_atime_nsec);
- stat->st_mtime = iatt->ia_mtime;
- ST_MTIM_NSEC_SET (stat, iatt->ia_mtime_nsec);
+ stat->st_mtime = iatt->ia_mtime;
+ ST_MTIM_NSEC_SET(stat, iatt->ia_mtime_nsec);
- stat->st_ctime = iatt->ia_ctime;
- ST_CTIM_NSEC_SET (stat, iatt->ia_ctime_nsec);
+ stat->st_ctime = iatt->ia_ctime;
+ ST_CTIM_NSEC_SET(stat, iatt->ia_ctime_nsec);
- return 0;
+ return 0;
}
static inline void
-oldiatt_from_iatt (struct old_iatt *o_iatt, struct iatt *c_iatt)
+oldiatt_from_iatt(struct old_iatt *o_iatt, struct iatt *c_iatt)
{
- o_iatt->ia_dev = c_iatt->ia_dev;
- o_iatt->ia_ino = c_iatt->ia_ino;
- o_iatt->ia_type = c_iatt->ia_type;
- o_iatt->ia_prot = c_iatt->ia_prot;
- o_iatt->ia_nlink = c_iatt->ia_nlink;
- o_iatt->ia_uid = c_iatt->ia_uid;
- o_iatt->ia_gid = c_iatt->ia_gid;
- o_iatt->ia_rdev = c_iatt->ia_rdev;
- o_iatt->ia_size = c_iatt->ia_size;
- o_iatt->ia_blksize = c_iatt->ia_blksize;
- o_iatt->ia_blocks = c_iatt->ia_blocks;
- o_iatt->ia_atime = c_iatt->ia_atime;
- o_iatt->ia_atime_nsec = c_iatt->ia_atime_nsec;
- o_iatt->ia_mtime = c_iatt->ia_mtime;
- o_iatt->ia_mtime_nsec = c_iatt->ia_mtime_nsec;
- o_iatt->ia_ctime = c_iatt->ia_ctime;
- o_iatt->ia_ctime_nsec = c_iatt->ia_ctime_nsec;
-
- gf_uuid_copy (o_iatt->ia_gfid, c_iatt->ia_gfid);
-
- return;
+ o_iatt->ia_dev = c_iatt->ia_dev;
+ o_iatt->ia_ino = c_iatt->ia_ino;
+ o_iatt->ia_type = c_iatt->ia_type;
+ o_iatt->ia_prot = c_iatt->ia_prot;
+ o_iatt->ia_nlink = c_iatt->ia_nlink;
+ o_iatt->ia_uid = c_iatt->ia_uid;
+ o_iatt->ia_gid = c_iatt->ia_gid;
+ o_iatt->ia_rdev = c_iatt->ia_rdev;
+ o_iatt->ia_size = c_iatt->ia_size;
+ o_iatt->ia_blksize = c_iatt->ia_blksize;
+ o_iatt->ia_blocks = c_iatt->ia_blocks;
+ o_iatt->ia_atime = c_iatt->ia_atime;
+ o_iatt->ia_atime_nsec = c_iatt->ia_atime_nsec;
+ o_iatt->ia_mtime = c_iatt->ia_mtime;
+ o_iatt->ia_mtime_nsec = c_iatt->ia_mtime_nsec;
+ o_iatt->ia_ctime = c_iatt->ia_ctime;
+ o_iatt->ia_ctime_nsec = c_iatt->ia_ctime_nsec;
+
+ gf_uuid_copy(o_iatt->ia_gfid, c_iatt->ia_gfid);
+
+ return;
}
static inline void
-iatt_from_oldiatt (struct iatt *c_iatt, struct old_iatt *o_iatt)
+iatt_from_oldiatt(struct iatt *c_iatt, struct old_iatt *o_iatt)
{
- c_iatt->ia_dev = o_iatt->ia_dev;
- c_iatt->ia_ino = o_iatt->ia_ino;
- c_iatt->ia_type = o_iatt->ia_type;
- c_iatt->ia_prot = o_iatt->ia_prot;
- c_iatt->ia_nlink = o_iatt->ia_nlink;
- c_iatt->ia_uid = o_iatt->ia_uid;
- c_iatt->ia_gid = o_iatt->ia_gid;
- c_iatt->ia_rdev = o_iatt->ia_rdev;
- c_iatt->ia_size = o_iatt->ia_size;
- c_iatt->ia_blksize = o_iatt->ia_blksize;
- c_iatt->ia_blocks = o_iatt->ia_blocks;
- c_iatt->ia_atime = o_iatt->ia_atime;
- c_iatt->ia_atime_nsec = o_iatt->ia_atime_nsec;
- c_iatt->ia_mtime = o_iatt->ia_mtime;
- c_iatt->ia_mtime_nsec = o_iatt->ia_mtime_nsec;
- c_iatt->ia_ctime = o_iatt->ia_ctime;
- c_iatt->ia_ctime_nsec = o_iatt->ia_ctime_nsec;
-
- gf_uuid_copy (c_iatt->ia_gfid, o_iatt->ia_gfid);
-
- c_iatt->ia_attributes = 0;
-
- c_iatt->ia_flags = IATT_TYPE | IATT_MODE | IATT_NLINK | IATT_INO |
- IATT_UID | IATT_GID | IATT_SIZE | IATT_BLOCKS |
- IATT_ATIME | IATT_MTIME | IATT_CTIME | IATT_GFID;
-
- return;
+ c_iatt->ia_dev = o_iatt->ia_dev;
+ c_iatt->ia_ino = o_iatt->ia_ino;
+ c_iatt->ia_type = o_iatt->ia_type;
+ c_iatt->ia_prot = o_iatt->ia_prot;
+ c_iatt->ia_nlink = o_iatt->ia_nlink;
+ c_iatt->ia_uid = o_iatt->ia_uid;
+ c_iatt->ia_gid = o_iatt->ia_gid;
+ c_iatt->ia_rdev = o_iatt->ia_rdev;
+ c_iatt->ia_size = o_iatt->ia_size;
+ c_iatt->ia_blksize = o_iatt->ia_blksize;
+ c_iatt->ia_blocks = o_iatt->ia_blocks;
+ c_iatt->ia_atime = o_iatt->ia_atime;
+ c_iatt->ia_atime_nsec = o_iatt->ia_atime_nsec;
+ c_iatt->ia_mtime = o_iatt->ia_mtime;
+ c_iatt->ia_mtime_nsec = o_iatt->ia_mtime_nsec;
+ c_iatt->ia_ctime = o_iatt->ia_ctime;
+ c_iatt->ia_ctime_nsec = o_iatt->ia_ctime_nsec;
+
+ gf_uuid_copy(c_iatt->ia_gfid, o_iatt->ia_gfid);
+
+ c_iatt->ia_attributes = 0;
+
+ c_iatt->ia_flags = IATT_TYPE | IATT_MODE | IATT_NLINK | IATT_INO |
+ IATT_UID | IATT_GID | IATT_SIZE | IATT_BLOCKS |
+ IATT_ATIME | IATT_MTIME | IATT_CTIME | IATT_GFID;
+
+ return;
}
static inline int
-is_same_mode (ia_prot_t prot1, ia_prot_t prot2)
+is_same_mode(ia_prot_t prot1, ia_prot_t prot2)
{
- int ret = 0;
+ int ret = 0;
- if (st_mode_prot_from_ia(prot1) != st_mode_prot_from_ia(prot2))
- ret = -1;
+ if (st_mode_prot_from_ia(prot1) != st_mode_prot_from_ia(prot2))
+ ret = -1;
- return ret;
+ return ret;
}
-
#endif /* _IATT_H */