[XFS] Now that xfs_setattr is only used for attributes set from ->setattr
it can be switched to take struct iattr directly and thus simplify the implementation greatly. Also rename the ATTR_ flags to XFS_ATTR_ to not conflict with the ATTR_ flags used by the VFS. SGI-PV: 984565 SGI-Modid: xfs-linux-melb:xfs-kern:31678a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Tim Shimmin <tes@sgi.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
This commit is contained in:

committed by
Niv Sardi

parent
25fe55e814
commit
0f285c8a1c
@@ -19,7 +19,6 @@
|
||||
#define __XFS_VNODE_H__
|
||||
|
||||
struct file;
|
||||
struct bhv_vattr;
|
||||
struct xfs_iomap;
|
||||
struct attrlist_cursor_kern;
|
||||
|
||||
@@ -66,69 +65,6 @@ static inline struct inode *vn_to_inode(bhv_vnode_t *vnode)
|
||||
Prevent VM access to the pages until
|
||||
the operation completes. */
|
||||
|
||||
/*
|
||||
* Vnode attributes. va_mask indicates those attributes the caller
|
||||
* wants to set or extract.
|
||||
*/
|
||||
typedef struct bhv_vattr {
|
||||
int va_mask; /* bit-mask of attributes present */
|
||||
mode_t va_mode; /* file access mode and type */
|
||||
xfs_nlink_t va_nlink; /* number of references to file */
|
||||
uid_t va_uid; /* owner user id */
|
||||
gid_t va_gid; /* owner group id */
|
||||
xfs_ino_t va_nodeid; /* file id */
|
||||
xfs_off_t va_size; /* file size in bytes */
|
||||
u_long va_blocksize; /* blocksize preferred for i/o */
|
||||
struct timespec va_atime; /* time of last access */
|
||||
struct timespec va_mtime; /* time of last modification */
|
||||
struct timespec va_ctime; /* time file changed */
|
||||
u_int va_gen; /* generation number of file */
|
||||
xfs_dev_t va_rdev; /* device the special file represents */
|
||||
__int64_t va_nblocks; /* number of blocks allocated */
|
||||
u_long va_xflags; /* random extended file flags */
|
||||
u_long va_extsize; /* file extent size */
|
||||
u_long va_nextents; /* number of extents in file */
|
||||
u_long va_anextents; /* number of attr extents in file */
|
||||
prid_t va_projid; /* project id */
|
||||
} bhv_vattr_t;
|
||||
|
||||
/*
|
||||
* setattr or getattr attributes
|
||||
*/
|
||||
#define XFS_AT_TYPE 0x00000001
|
||||
#define XFS_AT_MODE 0x00000002
|
||||
#define XFS_AT_UID 0x00000004
|
||||
#define XFS_AT_GID 0x00000008
|
||||
#define XFS_AT_FSID 0x00000010
|
||||
#define XFS_AT_NODEID 0x00000020
|
||||
#define XFS_AT_NLINK 0x00000040
|
||||
#define XFS_AT_SIZE 0x00000080
|
||||
#define XFS_AT_ATIME 0x00000100
|
||||
#define XFS_AT_MTIME 0x00000200
|
||||
#define XFS_AT_CTIME 0x00000400
|
||||
#define XFS_AT_RDEV 0x00000800
|
||||
#define XFS_AT_BLKSIZE 0x00001000
|
||||
#define XFS_AT_NBLOCKS 0x00002000
|
||||
#define XFS_AT_VCODE 0x00004000
|
||||
#define XFS_AT_MAC 0x00008000
|
||||
#define XFS_AT_UPDATIME 0x00010000
|
||||
#define XFS_AT_UPDMTIME 0x00020000
|
||||
#define XFS_AT_UPDCTIME 0x00040000
|
||||
#define XFS_AT_ACL 0x00080000
|
||||
#define XFS_AT_CAP 0x00100000
|
||||
#define XFS_AT_INF 0x00200000
|
||||
#define XFS_AT_NEXTENTS 0x01000000
|
||||
#define XFS_AT_ANEXTENTS 0x02000000
|
||||
#define XFS_AT_SIZE_NOPERM 0x08000000
|
||||
#define XFS_AT_GENCOUNT 0x10000000
|
||||
|
||||
#define XFS_AT_TIMES (XFS_AT_ATIME|XFS_AT_MTIME|XFS_AT_CTIME)
|
||||
|
||||
#define XFS_AT_UPDTIMES (XFS_AT_UPDATIME|XFS_AT_UPDMTIME|XFS_AT_UPDCTIME)
|
||||
|
||||
#define XFS_AT_NOSET (XFS_AT_NLINK|XFS_AT_RDEV|XFS_AT_FSID|XFS_AT_NODEID|\
|
||||
XFS_AT_TYPE|XFS_AT_BLKSIZE|XFS_AT_NBLOCKS|XFS_AT_VCODE|\
|
||||
XFS_AT_NEXTENTS|XFS_AT_ANEXTENTS|XFS_AT_GENCOUNT)
|
||||
|
||||
extern void vn_init(void);
|
||||
extern int vn_revalidate(bhv_vnode_t *);
|
||||
@@ -204,15 +140,6 @@ static inline void vn_atime_to_time_t(bhv_vnode_t *vp, time_t *tt)
|
||||
#define VN_DIRTY(vp) mapping_tagged(vn_to_inode(vp)->i_mapping, \
|
||||
PAGECACHE_TAG_DIRTY)
|
||||
|
||||
/*
|
||||
* Flags to vop_setattr/getattr.
|
||||
*/
|
||||
#define ATTR_UTIME 0x01 /* non-default utime(2) request */
|
||||
#define ATTR_DMI 0x08 /* invocation from a DMI function */
|
||||
#define ATTR_LAZY 0x80 /* set/get attributes lazily */
|
||||
#define ATTR_NONBLOCK 0x100 /* return EAGAIN if operation would block */
|
||||
#define ATTR_NOLOCK 0x200 /* Don't grab any conflicting locks */
|
||||
#define ATTR_NOSIZETOK 0x400 /* Don't get the SIZE token */
|
||||
|
||||
/*
|
||||
* Tracking vnode activity.
|
||||
|
Reference in New Issue
Block a user