Messages in this thread | | | From | David Howells <> | Subject | Re: [PATCH] netfs: Use container_of() for offset casting | Date | Wed, 18 May 2022 09:05:14 +0100 |
| |
I wonder if it would be worth making this explicit in the inode wrappers of the users of netfslib. In afs, for instance, there is:
struct afs_vnode { struct { /* These must be contiguous */ struct inode vfs_inode; struct netfs_i_context netfs_ctx; }; ... };
would it be worth making that:
struct afs_vnode { union { struct netfs_i_c_pair netfs_inode; struct { /* These must be contiguous */ struct inode vfs_inode; struct netfs_i_context netfs_ctx; }; }; ... };
I don't want to do the following, say:
struct afs_vnode { struct netfs_i_c_pair ni; ... };
as that would then require a lot of s/->vfs_inode/->ni.vfs_inode/, but maybe it would be better to include a struct inode in struct netfs_i_context, and then do:
struct afs_vnode { union { struct netfs_i_context netfs_ctx; struct inode vfs_inode; }; ... };
and perhaps rename netfs_i_context to netfs_inode (though that looks a bit close to nfs_inode). It's just a shame I can't do:
struct netfs_inode : inode { ... };
struct afs_vnode : netfs_inode { ... };
right? ;-)
On the other hand:
warthog>git grep '[>.]vfs_inode' -- fs/{9p,afs,ceph,cifs,nfs} | wc -l 181
so maybe a mass change to, say:
struct netfs_inode { struct inode vfs_inode; ... };
struct afs_vnode { struct netfs_inode ni; ... };
wouldn't be so bad.
David
| |