Thread (11 messages) 11 messages, 3 authors, 2021-12-21

Re: [PATCH v5 3/5] fs: split off do_getxattr from getxattr

From: Jens Axboe <axboe@kernel.dk>
Date: 2021-12-21 22:58:26
Also in: linux-fsdevel

On 12/21/21 2:59 PM, Stefan Roesch wrote:

On 12/21/21 11:18 AM, Linus Torvalds wrote:
quoted
On Tue, Dec 21, 2021 at 11:15 AM Stefan Roesch [off-list ref] wrote:
quoted
Linus, if we remove the constness, then we either need to cast away the constness (the system call
is defined as const) or change the definition of the system call.
You could also do it as

        union {
                const void __user *setxattr_value;
                void __user *getxattr_value;
        };
Pavel brought up a very good point. By adding the kname array into the
xarray_ctx we increase the size of io_xattr structure too much. In
addition this will also increase the size of the io_kiocb structure.
The original solution did not increase the size.

Per opcode we limit the storage space to 64 bytes. However the array
itself requires 256 bytes.
Just to expand on that a bit - part of struct io_kiocb is per-command
data, and we try pretty hard to keep that at 64-bytes as that's the
largest one we currently have. If we add the array to the io_xattr
structure, then that will increase the whole io_kiocb from 224 bytes to
more than twice that.

So there are really two options here:

1) The xattr_ctx structure goes into the async data that a command has
   to allocate for deferred execution. This isn't a _huge_ deal as we
   have to defer the xattr commands for now anyway, as the VFS doesn't
   support a nonblocking version of that yet. But it would still be nice
   not to have to do that.

2) We keep the original interface that Stefan proposed, leaving the
   xattr_ctx bits embedded as they fit fine like that.

#2 would be a bit more efficient, but I don't feel that strongly about
it for this particular case.

Comments?

-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help