Btrfs-progs: mkfs: don't create extent for an empty file
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>
Tue, 11 Mar 2014 10:29:08 +0000 (18:29 +0800)
committerChris Mason <clm@fb.com>
Fri, 21 Mar 2014 16:51:31 +0000 (09:51 -0700)
Steps to reproduce:
 # mkdir -p /tmp/test
 # touch /tmp/test/file
 # mkfs.btrfs -f /dev/sda13 -r /tmp/test
 # btrfs check /dev/sda13

For an empty file, don't create extent data for it.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
mkfs.c

diff --git a/mkfs.c b/mkfs.c
index 2dc90c2..2f7dfef 100644 (file)
--- a/mkfs.c
+++ b/mkfs.c
@@ -619,6 +619,9 @@ static int add_file_items(struct btrfs_trans_handle *trans,
        struct extent_buffer *eb = NULL;
        int fd;
 
+       if (st->st_size == 0)
+               return 0;
+
        fd = open(path_name, O_RDONLY);
        if (fd == -1) {
                fprintf(stderr, "%s open failed\n", path_name);