[PATCH] xfs_growfs: don't grow data if only -m is specified

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



While writing an xfstest to check imaxpct behavior, I realized
that xfs_growfs -m XXX /mnt/point will not only change
imaxpct, but also grow the filesystem if it's not currently
occupying the entire block device.  This doesn't seem like
the expected behavior, so split it out such that if only
-m, and not -d, is specified, only the imaxpct will be
changed.

This is a change from previous behavior, but I think it
satisfies the principle of least surprise...

Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
---

diff --git a/growfs/xfs_growfs.c b/growfs/xfs_growfs.c
index 2df68fb..fb7eda8 100644
--- a/growfs/xfs_growfs.c
+++ b/growfs/xfs_growfs.c
@@ -189,7 +189,7 @@ main(int argc, char **argv)
 		usage();
 	if (iflag && xflag)
 		usage();
-	if (dflag + lflag + rflag == 0)
+	if (dflag + lflag + rflag + mflag == 0)
 		aflag = 1;
 
 	fs_table_initialise(0, NULL, 0, NULL);
@@ -305,12 +305,15 @@ main(int argc, char **argv)
 	drsize -= (drsize % 2);
 
 	error = 0;
-	if (dflag | aflag) {
+
+	if (dflag | mflag | aflag) {
 		xfs_growfs_data_t	in;
 
 		if (!mflag)
 			maxpct = geo.imaxpct;
-		if (!dsize)
+		if (!dflag && !aflag)	/* Only mflag, no data size change */
+			dsize = geo.datablocks;
+		else if (!dsize)
 			dsize = ddsize / (geo.blocksize / BBSIZE);
 		else if (dsize > ddsize / (geo.blocksize / BBSIZE)) {
 			fprintf(stderr, _(

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux