[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2692904.1652861114@warthog.procyon.org.uk>
Date: Wed, 18 May 2022 09:05:14 +0100
From: David Howells <dhowells@...hat.com>
To: Kees Cook <keescook@...omium.org>
Cc: dhowells@...hat.com, Jeff Layton <jlayton@...nel.org>,
linux-kernel@...r.kernel.org, linux-hardening@...r.kernel.org
Subject: Re: [PATCH] netfs: Use container_of() for offset casting
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
Powered by blists - more mailing lists