Hello, These days I have tried to implement shrinkfs feature according to Dave's previous design which can be found at: http://www.xfs.org/index.php/Shrinking_Support Here is a very initial patch set, it only support shrinking up to the latest empty AG since I have not add the data moving and extents swap functions to the user tools. I know the current patches definitely looks stupid and there have many places need to fix. I'd like to post it eaiser to seek any directions so that I can continue to improve it, especially on inode swap semantics, AG metadata removing as well as the command interface. - xfs_reno(8) The following two links are referred to a couple of untested patches of inode swapping for xfs_reno(8). http://marc.info/?l=linux-xfs&m=119552278931942&w=2 http://marc.info/?l=linux-xfs&m=119582841808985&w=2 The user patch does extents swapping after swapping inodes, I was confused because xfs_reno only do modify the inodes from 64bits to 32bits, inodes swap should be sufficient to perform it since it don't need to move the data extents(i.e. perform extents/blocks allocation for target files like xfs_fsr/xfs_shrinkfs). - AG metadata clean up For now, I only wipe the pre-allocated sectors/blocks out of an empty AG, I guess I missed something for btree info updates. - xfs_shrinkfs CLI I observed Dave has posted a patch to fetch the FS freespace via FIEMAP, but for now, I have to get the FS freespace via shell script(wrapper of xfs_db). And also, I didn't add the data moving functions because there still has issues on inode swap routine, it would failed to swap directories :(, so it can only be used to reflect my current stupid ideas. Last but not the least, I have not add the placeholder for log area shrink as well as compat_ioctl32 functions since this version can only be considered at input comments stage. Any suggestions are appreciated! Thanks, -Jeff _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs