From 545b52c2fa77614ad460f2a7f5943632dce6052e Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sat, 4 Jun 2011 11:19:18 +0300 Subject: mkfs.btrfs: fail on scandir error (-r mode) mkfs.btrfs does not handle relative pathnames for now. When they are passed to it it creates empty image. So first time I thought it does not work at all. This patch adds error handling for scandir(). With patch it behaves this way: $ mkfs.btrfs -r ./root ... fs created label (null) on output.img nodesize 4096 leafsize 4096 sectorsize 4096 size 256.00MB Btrfs v0.19-52-g438c5ff-dirty scandir for ./root failed: No such file or directory unable to traverse_directory Making image is aborted. mkfs.btrfs: mkfs.c:1402: main: Assertion `!(ret)' failed. Signed-off-by: Sergei Trofimovich Signed-off-by: Hugo Mills --- mkfs.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'mkfs.c') diff --git a/mkfs.c b/mkfs.c index 171710e5..efd85d58 100644 --- a/mkfs.c +++ b/mkfs.c @@ -895,6 +895,12 @@ static int traverse_directory(struct btrfs_trans_handle *trans, count = scandir(parent_dir_entry->path, &files, directory_select, NULL); + if (count == -1) + { + fprintf(stderr, "scandir for %s failed: %s\n", + parent_dir_name, strerror (errno)); + goto fail; + } for (i = 0; i < count; i++) { cur_file = files[i]; -- cgit v1.2.3