xfs_fsr had been broken due to restricting a RESVSP ioctl to root.
In fact, even root could not defrag other user's files because
it forked & did a setuid prior to calling the ioctl.
This fixes things up:
Remove forks from xfs_fsr.
Rather than forking & setuid to the file's owner, simply
run as root and chown the temp. defrag file to the original owner,
to keep quota in sync. This lets root execute the RESVSP
ioctl as necessary, but keeps all quota info correct when defragging
another user's file.
CONTRIBUTED: Chris Wedgwood <cw@xxxxxxxx>
Date: Thu Oct 3 15:09:14 PDT 2002
Workarea:
stout.americas.sgi.com:/localhome/src/sandeen/2.4.x-xfs/workarea-alwaysclean
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: xfs-cmds:slinx:129029a
cmd/xfsdump/fsr/xfs_fsr.c - 1.13
- Remove forks from xfs_fsr, just run as root & chown files
appropriately.
CONTRIBUTED: Chris Wedgwood <cw@xxxxxxxx>
|