On 10/17/2012 06:40 PM, Ben Myers wrote: > Hi Fellas, > > On Tue, Oct 16, 2012 at 12:39:01PM +1100, Dave Chinner wrote: >> On Tue, Oct 16, 2012 at 10:49:02AM +1100, Dave Chinner wrote: >>> On Mon, Oct 15, 2012 at 05:46:26PM -0500, Ben Myers wrote: >>>> Hey Brian, >>>> ... >>>> I do think it is preferable to have a test case go in with the code where >>>> possible. Since you don't mind waiting a bit, that seems to be the way to go. >>>> The other option could be to look for a volunteer to work on the test. ;) >>> >>> FWIW, given the background cleanup code can be trivially verified to >>> work (open, apend, close, repeat, wait 5 minutes) and is the >>> functionality that is needed in mainline, having something to test >>> the ioctls should not stop the patchset from being merged. > > Can we be assured that we'll get an xfstest for it eventually? > Absolutely. Getting a command into xfs_io to support such a test is now the top of my todo list with regard to XFS. :) > I think we can pull this in if Brian is willing post his test code. Initially > it needn't be posted as an xfstest, that's fine. As it stands today it appears > that Brian is the only one to ever use the ioctl and there is no way for anyone > else to test it. Not an ideal situation. > The impetus for this work was some prototype quota work for the gluster distributed filesystem. Beyond testing via that, I just had a very simple/stupid program with the command and data structure bits copy/pasted in to open a file and invoke an xfsctl() with hardcoded parameters. I don't consider it post-worthy or very useful, but attached nonetheless since I have a couple things to deal with before I get a chance to play with xfs_io. > I think this is a reasonable request. Usually it's Christoph who asks for a > test case. ;) > Agree. Brian >> i.e.: >> >> $ for i in `seq 0 512`; do >>> xfs_io -f -c "pwrite $((i * 4096)) 4096" /mnt/scratch/foo >>> done >> $ stat -c %b /mnt/scratch/foo >> 8192 >> $ sync; stat -c %b /mnt/scratch/foo >> 8192 >> $ sleep 30; stat -c %b /mnt/scratch/foo >> 8192 >> $ sleep 300; stat -c %b /mnt/scratch/foo >> 4104 >> >> It works. ;) > > Nice! > > Regards, > Ben >