[PATCH] xfs: take XFS_IOLOCK_EXCL if suid removal is required
Jan Kara
jack at suse.cz
Thu Jul 9 05:17:11 CDT 2015
On Mon 15-06-15 10:26:37, Eric Sandeen wrote:
> On 3/6/15 3:09 PM, Dave Chinner wrote:
> > On Fri, Mar 06, 2015 at 10:54:06AM -0600, Eric Sandeen wrote:
> >> This sequence:
> >>
> >> # rm -f sparsefile
> >> # truncate --size=1m sparsefile
> >> # chmod ugo+rws sparsefile
> >> # ls -l sparsefile
> >> -rwSrwSrw-. 1 root root 1048576 Mar 6 10:29 sparsefile
> >> # su tester
> >>
> >> $ xfs_io -d -c "pwrite 0 4096" sparsefile
> >> wrote 4096/4096 bytes at offset 0
> >> 4 KiB, 1 ops; 0.0000 sec (21.505 KiB/sec and 5.3763 ops/sec)
> >> $ exit
> >>
> >> will lead to a WARN_ON() in notify change, because i_mutex is
> >> not held, and we get to notify_change via suid removal with
> >> only XFS_IOLOCK_SHARED held, i.e. no i_mutex.
> >>
> >> Upgrade the lock to XFS_IOLOCK_EXCL in this case.
> >>
> >> Signed-off-by: Eric Sandeen <sandeen at redhat.com>
> >
> > I believe Jan Kara has already addressed this problem in
> > this patchset:
> >
> > http://oss.sgi.com/archives/xfs/2015-03/msg00051.html
>
> Seems like that patchset never made it anywhere, though, so this
> is still an outstanding problem. :(
Al just merged the patch set during this merge window. Hurray!
Honza
--
Jan Kara <jack at suse.cz>
SUSE Labs, CR
More information about the xfs
mailing list