[PATCH 1/2] afs: use d_time instead of d_fsdata
David Howells
dhowells at redhat.com
Thu Jul 2 03:53:02 PDT 2026
NeilBrown <neilb at ownmail.net> wrote:
> > > Interestingly the value stored in ->d_time or d_fsdata is u64 which does
> > > not fit in "unsigned long" or "void *" on 32 bit hosts. Maybe that
> > > doesn't matter.
> >
> > Hmmm... It looks like NFS may have a bug here:
> >
> > static int nfs_dentry_verify_change(struct inode *dir, struct dentry *dentry)
> > {
> > if (nfs_server_capable(dir, NFS_CAP_CASE_INSENSITIVE) &&
> > d_really_is_negative(dentry))
> > return dentry->d_time == inode_peek_iversion_raw(dir);
> > return nfs_verify_change_attribute(dir, dentry->d_time);
> > }
> >
> > dentry->d_time may be 32-bits, but inode_peek_iversion_raw() is always 64 bits
> > and i_version is set to the 64-bit fattr->change_attr.
>
> I wonder if there would be any appetite for making d_time (or d_version)
> always 64bit, much like i_ino was recently changed to u64.
I suspect Al wouldn't be happy about that. He counts the bits in struct
dentry very carefully.
David
More information about the linux-afs
mailing list