btrfs-progs: btrfs-convert.c : check source file system state
PATCH 1/1 btrfs-progs: btrfs-convert.c : check source file system state
Signed-off-by Lakshmipathi.G <[email protected]>
--- btrfs-convert.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
btrfs-convert.c +15 -0
@@ -2171,6 +2171,17 @@ static void ext2_copy_inode_item(struct btrfs_inode_item *dst, }memset (&dst->reserved,0 ,sizeof (dst->reserved)); } +static int check_filesystem_state (struct btrfs_convert_context *cctx) +{ +ext2_filsys fs = cctx->fs_data; + +if (!(fs->super->s_state &EXT2_VALID_FS )) +return 1 ; +else if (fs->super->s_state &EXT2_ERROR_FS ) +return 1 ; +else +return 0 ; +}/* * copy a single inode. do all the required works, such as cloning
@@ -2340,6 +2351,10 @@ static int do_convert(const char *devname, int datacsum, int packing, ret =convert_open_fs (devname, &cctx);if (ret) goto fail; + ret =check_filesystem_state (&cctx); +if (ret) +warning ("Source Filesystem is not clean, \ +running e2fsck is recommended." ); ret =convert_read_used_space (&cctx);if (ret) goto fail;
Signature · 1 line
1.9.3
Quoted 28 lines · Lakshmipathi.G
Signed-off-by Lakshmipathi.G <[email protected]>--- btrfs-convert.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)btrfs-convert.c +11
-0@@ -2171,6 +2171,17 @@ static void ext2_copy_inode_item(struct btrfs_inode_item *dst, }memset (&dst->reserved,0 ,sizeof (dst->reserved)); } +static int check_filesystem_state (struct btrfs_convert_context *cctx) +{ +ext2_filsys fs = cctx->fs_data; + +if (!(fs->super->s_state &EXT2_VALID_FS )) +return 1 ; +else if (fs->super->s_state &EXT2_ERROR_FS ) +return 1 ; +else +return 0 ; +}/* * copy a single inode. do all the required works, such as cloning
btrfs-convert.c static int do_convert(const char *devname, int datacsum, int packing, · line 2357
Quoted 7 lines
btrfs-convert.c +4
-0@@ -2340,6 +2351,10 @@ static int do_convert(const char *devname, int datacsum, int packing, ret =convert_open_fs (devname, &cctx);if (ret) goto fail; + ret =check_filesystem_state (&cctx); +if (ret) +warning ("Source Filesystem is not clean, \ +running e2fsck is recommended." );
I'm wondering if this should be a hard error or not, I'll leave it as a warning for now.