Message ID | 20160915120852.GA22577@fedori (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Thu, Sep 15, 2016 at 02:08:52PM +0200, Lakshmipathi.G wrote: > Signed-off-by: Lakshmipathi.G <Lakshmipathi.G@giis.co.in> > --- > btrfs-convert.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/btrfs-convert.c b/btrfs-convert.c > index c10dc17..27da9ce 100644 > --- a/btrfs-convert.c > +++ b/btrfs-convert.c > @@ -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."); I'm wondering if this should be a hard error or not, I'll leave it as a warning for now. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/btrfs-convert.c b/btrfs-convert.c index c10dc17..27da9ce 100644 --- a/btrfs-convert.c +++ b/btrfs-convert.c @@ -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;
Signed-off-by: Lakshmipathi.G <Lakshmipathi.G@giis.co.in> --- btrfs-convert.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)