diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2011-06-04 11:19:18 +0300 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2011-10-25 09:18:58 -0400 |
commit | 545b52c2fa77614ad460f2a7f5943632dce6052e (patch) | |
tree | 101ed1e8f1793bf91dd20ef52cf9f37fca2c17de /mkfs.c | |
parent | 2acb6817c70aff99dc42239f3a69169512913ff2 (diff) |
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 <slyfox@gentoo.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
Diffstat (limited to 'mkfs.c')
-rw-r--r-- | mkfs.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -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]; |