From: Al Viro <viro@zeniv.linux.org.uk>
To: Miklos Szeredi <mszeredi@redhat.com>
Cc: linux-fsdevel@vger.kernel.org,
"Darrick J . Wong" <djwong@kernel.org>,
Amir Goldstein <amir73il@gmail.com>,
David Sterba <dsterba@suse.cz>,
Christian Brauner <christian.brauner@ubuntu.com>,
Eric Biggers <ebiggers@kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 01/18] vfs: add fileattr ops
Date: Sun, 28 Mar 2021 18:07:02 +0000 [thread overview]
Message-ID: <YGDFxh7+724niztd@zeniv-ca.linux.org.uk> (raw)
In-Reply-To: <20210325193755.294925-2-mszeredi@redhat.com>
On Thu, Mar 25, 2021 at 08:37:38PM +0100, Miklos Szeredi wrote:
> +int vfs_fileattr_get(struct dentry *dentry, struct fileattr *fa)
> +{
> + struct inode *inode = d_inode(dentry);
> +
> + if (d_is_special(dentry))
> + return -ENOTTY;
FWIW - why? For uses via ioctl() you simply won't get there with
device nodes et.al. - they have file_operations of their own.
If we add syscall(s) for getting/setting those, there's no reason
for e.g. a device node not to have those attributes...
> +static int ioctl_getflags(struct file *file, void __user *argp)
unsigned int __user *argp, surely?
> +{
> + struct fileattr fa = { .flags_valid = true }; /* hint only */
> + unsigned int flags;
> + int err;
> +
> + err = vfs_fileattr_get(file->f_path.dentry, &fa);
> + if (!err) {
> + flags = fa.flags;
> + if (copy_to_user(argp, &flags, sizeof(flags)))
> + err = -EFAULT;
... and put_user() here.
> + }
> + return err;
> +}
> +
> +static int ioctl_setflags(struct file *file, void __user *argp)
> +{
> + struct fileattr fa;
> + unsigned int flags;
> + int err;
> +
> + if (copy_from_user(&flags, argp, sizeof(flags)))
> + return -EFAULT;
> +
> + err = mnt_want_write_file(file);
> + if (!err) {
> + fileattr_fill_flags(&fa, flags);
> + err = vfs_fileattr_set(file_mnt_user_ns(file), file_dentry(file), &fa);
> + mnt_drop_write_file(file);
> + }
> + return err;
> +}
Similar here.
next prev parent reply other threads:[~2021-03-28 18:08 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-25 19:37 [PATCH v3 00/18] new kAPI for FS_IOC_[GS]ETFLAGS/FS_IOC_FS[GS]ETXATTR Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 01/18] vfs: add fileattr ops Miklos Szeredi
2021-03-28 18:07 ` Al Viro [this message]
2021-03-29 8:11 ` Miklos Szeredi
2021-04-13 14:45 ` Matthew Wilcox
2021-04-13 14:53 ` Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 02/18] ecryptfs: stack " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 03/18] ovl: " Miklos Szeredi
2021-03-28 18:08 ` Al Viro
2021-03-29 9:24 ` Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 04/18] btrfs: convert to fileattr Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 05/18] ext2: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 06/18] ext4: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 07/18] f2fs: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 08/18] gfs2: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 09/18] orangefs: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 10/18] xfs: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 11/18] efivars: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 12/18] hfsplus: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 13/18] jfs: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 14/18] nilfs2: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 15/18] ocfs2: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 16/18] reiserfs: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 17/18] ubifs: " Miklos Szeredi
2021-03-25 19:37 ` [PATCH v3 18/18] vfs: remove unused ioctl helpers Miklos Szeredi
2021-03-25 22:07 ` [PATCH v3 00/18] new kAPI for FS_IOC_[GS]ETFLAGS/FS_IOC_FS[GS]ETXATTR Mike Marshall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YGDFxh7+724niztd@zeniv-ca.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=amir73il@gmail.com \
--cc=christian.brauner@ubuntu.com \
--cc=djwong@kernel.org \
--cc=dsterba@suse.cz \
--cc=ebiggers@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mszeredi@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome