Skip to content

Commit ba976ef

Browse files
committed
Expand the type of nfs_fattr->valid
JIRA: https://issues.redhat.com/browse/RHEL-90990 commit ce60ab3 Author: Trond Myklebust <trond.myklebust@primarydata.com> Date: Thu May 29 06:45:45 2025 -0400 Expand the type of nfs_fattr->valid We need to be able to track more than 32 attributes per inode. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> Signed-off-by: Lance Shelton <lance.shelton@hammerspace.com> Signed-off-by: Benjamin Coddington <bcodding@redhat.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> Link: https://lore.kernel.org/r/1e3405fca54efd0be7c91c1da77917b94f5dfcc4.1748515333.git.bcodding@redhat.com Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
1 parent 9f87d53 commit ba976ef

File tree

3 files changed

+29
-29
lines changed

3 files changed

+29
-29
lines changed

fs/nfs/inode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2160,7 +2160,7 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
21602160
bool attr_changed = false;
21612161
bool have_delegation;
21622162

2163-
dfprintk(VFS, "NFS: %s(%s/%lu fh_crc=0x%08x ct=%d info=0x%x)\n",
2163+
dfprintk(VFS, "NFS: %s(%s/%lu fh_crc=0x%08x ct=%d info=0x%llx)\n",
21642164
__func__, inode->i_sb->s_id, inode->i_ino,
21652165
nfs_display_fhandle_hash(NFS_FH(inode)),
21662166
atomic_read(&inode->i_count), fattr->valid);

include/linux/nfs_fs_sb.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ struct nfs_server {
160160
#define NFS_MOUNT_SHUTDOWN 0x08000000
161161
#define NFS_MOUNT_FORCE_RDIRPLUS 0x20000000
162162

163-
unsigned int fattr_valid; /* Valid attributes */
164163
unsigned int caps; /* server capabilities */
164+
__u64 fattr_valid; /* Valid attributes */
165165
unsigned int rsize; /* read size */
166166
unsigned int rpages; /* read size (in pages) */
167167
unsigned int wsize; /* write size */

include/linux/nfs_xdr.h

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ struct nfs4_threshold {
4545
};
4646

4747
struct nfs_fattr {
48-
unsigned int valid; /* which fields are valid */
48+
__u64 valid; /* which fields are valid */
4949
umode_t mode;
5050
__u32 nlink;
5151
kuid_t uid;
@@ -80,32 +80,32 @@ struct nfs_fattr {
8080
struct nfs4_label *label;
8181
};
8282

83-
#define NFS_ATTR_FATTR_TYPE (1U << 0)
84-
#define NFS_ATTR_FATTR_MODE (1U << 1)
85-
#define NFS_ATTR_FATTR_NLINK (1U << 2)
86-
#define NFS_ATTR_FATTR_OWNER (1U << 3)
87-
#define NFS_ATTR_FATTR_GROUP (1U << 4)
88-
#define NFS_ATTR_FATTR_RDEV (1U << 5)
89-
#define NFS_ATTR_FATTR_SIZE (1U << 6)
90-
#define NFS_ATTR_FATTR_PRESIZE (1U << 7)
91-
#define NFS_ATTR_FATTR_BLOCKS_USED (1U << 8)
92-
#define NFS_ATTR_FATTR_SPACE_USED (1U << 9)
93-
#define NFS_ATTR_FATTR_FSID (1U << 10)
94-
#define NFS_ATTR_FATTR_FILEID (1U << 11)
95-
#define NFS_ATTR_FATTR_ATIME (1U << 12)
96-
#define NFS_ATTR_FATTR_MTIME (1U << 13)
97-
#define NFS_ATTR_FATTR_CTIME (1U << 14)
98-
#define NFS_ATTR_FATTR_PREMTIME (1U << 15)
99-
#define NFS_ATTR_FATTR_PRECTIME (1U << 16)
100-
#define NFS_ATTR_FATTR_CHANGE (1U << 17)
101-
#define NFS_ATTR_FATTR_PRECHANGE (1U << 18)
102-
#define NFS_ATTR_FATTR_V4_LOCATIONS (1U << 19)
103-
#define NFS_ATTR_FATTR_V4_REFERRAL (1U << 20)
104-
#define NFS_ATTR_FATTR_MOUNTPOINT (1U << 21)
105-
#define NFS_ATTR_FATTR_MOUNTED_ON_FILEID (1U << 22)
106-
#define NFS_ATTR_FATTR_OWNER_NAME (1U << 23)
107-
#define NFS_ATTR_FATTR_GROUP_NAME (1U << 24)
108-
#define NFS_ATTR_FATTR_V4_SECURITY_LABEL (1U << 25)
83+
#define NFS_ATTR_FATTR_TYPE BIT_ULL(0)
84+
#define NFS_ATTR_FATTR_MODE BIT_ULL(1)
85+
#define NFS_ATTR_FATTR_NLINK BIT_ULL(2)
86+
#define NFS_ATTR_FATTR_OWNER BIT_ULL(3)
87+
#define NFS_ATTR_FATTR_GROUP BIT_ULL(4)
88+
#define NFS_ATTR_FATTR_RDEV BIT_ULL(5)
89+
#define NFS_ATTR_FATTR_SIZE BIT_ULL(6)
90+
#define NFS_ATTR_FATTR_PRESIZE BIT_ULL(7)
91+
#define NFS_ATTR_FATTR_BLOCKS_USED BIT_ULL(8)
92+
#define NFS_ATTR_FATTR_SPACE_USED BIT_ULL(9)
93+
#define NFS_ATTR_FATTR_FSID BIT_ULL(10)
94+
#define NFS_ATTR_FATTR_FILEID BIT_ULL(11)
95+
#define NFS_ATTR_FATTR_ATIME BIT_ULL(12)
96+
#define NFS_ATTR_FATTR_MTIME BIT_ULL(13)
97+
#define NFS_ATTR_FATTR_CTIME BIT_ULL(14)
98+
#define NFS_ATTR_FATTR_PREMTIME BIT_ULL(15)
99+
#define NFS_ATTR_FATTR_PRECTIME BIT_ULL(16)
100+
#define NFS_ATTR_FATTR_CHANGE BIT_ULL(17)
101+
#define NFS_ATTR_FATTR_PRECHANGE BIT_ULL(18)
102+
#define NFS_ATTR_FATTR_V4_LOCATIONS BIT_ULL(19)
103+
#define NFS_ATTR_FATTR_V4_REFERRAL BIT_ULL(20)
104+
#define NFS_ATTR_FATTR_MOUNTPOINT BIT_ULL(21)
105+
#define NFS_ATTR_FATTR_MOUNTED_ON_FILEID BIT_ULL(22)
106+
#define NFS_ATTR_FATTR_OWNER_NAME BIT_ULL(23)
107+
#define NFS_ATTR_FATTR_GROUP_NAME BIT_ULL(24)
108+
#define NFS_ATTR_FATTR_V4_SECURITY_LABEL BIT_ULL(25)
109109

110110
#define NFS_ATTR_FATTR (NFS_ATTR_FATTR_TYPE \
111111
| NFS_ATTR_FATTR_MODE \

0 commit comments

Comments
 (0)