diff mbox

btrfs-progs: Accurate errormsg for resize operation on no-enouth-free-space case

Message ID c691223c924a1219af4652e51dc05b7d98e54cf2.1437551819.git.zhaolei@cn.fujitsu.com (mailing list archive)
State Accepted
Headers show

Commit Message

Zhaolei July 22, 2015, 7:58 a.m. UTC
From: Zhao Lei <zhaolei@cn.fujitsu.com>

btrfs progs output following error message when doing resize on
no-enouth-free-space case:
 # btrfs filesystem resize +10g /mnt/btrfs_5gb
 Resize '/mnt/btrfs_5gb' of '+10g'
 ERROR: unable to resize '/mnt/btrfs_5gb' - File too large
 #

It is not a good description for users, and this patch changed it to:
 # ./btrfs filesystem resize +10G /mnt/tmp1
 Resize '/mnt/tmp1' of '+10G'
 ERROR: unable to resize '/mnt/tmp1' - no enouth free space
 #

Reported-by: Taeha Kim <kthguru@gmail.com>
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
---
 cmds-filesystem.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/cmds-filesystem.c b/cmds-filesystem.c
index 800aa4d..c393ce7 100644
--- a/cmds-filesystem.c
+++ b/cmds-filesystem.c
@@ -1327,8 +1327,16 @@  static int cmd_resize(int argc, char **argv)
 	e = errno;
 	close_file_or_dir(fd, dirstream);
 	if( res < 0 ){
-		fprintf(stderr, "ERROR: unable to resize '%s' - %s\n", 
-			path, strerror(e));
+		switch (e) {
+		case EFBIG:
+			fprintf(stderr, "ERROR: unable to resize '%s' - no enouth free space\n",
+				path);
+			break;
+		default:
+			fprintf(stderr, "ERROR: unable to resize '%s' - %s\n",
+				path, strerror(e));
+			break;
+		}
 		return 1;
 	} else if (res > 0) {
 		const char *err_str = btrfs_err_str(res);