On Thu, Dec 12, 2019 at 11:54:02AM +0100, Christoph Hellwig wrote: > While the flags field in the ABI and the on-disk format allows for > multiple namespace flags, that is a logically invalid combination that > scrub complains about. Reject it at the ioctl level, as all other > interface already get this right at higher levels. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Looks ok I think. We never have attrs in two namespaces at once... assuming that "attr_multi(3)" is the right manpage for all this? Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --D > --- > fs/xfs/xfs_ioctl.c | 5 +++++ > fs/xfs/xfs_ioctl32.c | 5 +++++ > 2 files changed, 10 insertions(+) > > diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c > index 2f76d0a7b818..f3a53e0db2cf 100644 > --- a/fs/xfs/xfs_ioctl.c > +++ b/fs/xfs/xfs_ioctl.c > @@ -462,6 +462,11 @@ xfs_attrmulti_by_handle( > > error = 0; > for (i = 0; i < am_hreq.opcount; i++) { > + if ((ops[i].am_flags & ATTR_ROOT) && > + (ops[i].am_flags & ATTR_SECURE)) { > + ops[i].am_error = -EINVAL; > + continue; > + } > ops[i].am_flags &= ATTR_KERNEL_FLAGS; > > ops[i].am_error = strncpy_from_user((char *)attr_name, > diff --git a/fs/xfs/xfs_ioctl32.c b/fs/xfs/xfs_ioctl32.c > index 8b5acf8c42e1..720eb72f3be3 100644 > --- a/fs/xfs/xfs_ioctl32.c > +++ b/fs/xfs/xfs_ioctl32.c > @@ -450,6 +450,11 @@ xfs_compat_attrmulti_by_handle( > > error = 0; > for (i = 0; i < am_hreq.opcount; i++) { > + if ((ops[i].am_flags & ATTR_ROOT) && > + (ops[i].am_flags & ATTR_SECURE)) { > + ops[i].am_error = -EINVAL; > + continue; > + } > ops[i].am_flags &= ATTR_KERNEL_FLAGS; > > ops[i].am_error = strncpy_from_user((char *)attr_name, > -- > 2.20.1 >