On Wed, Aug 28, 2013 at 07:29:38PM +0200, David Sterba wrote:
> On Fri, Aug 16, 2013 at 04:27:28PM +0800, Liu Bo wrote:
> > Similar to ocfs2, btrfs also supports that extents can be shared by
> > different inodes, and there are some userspace tools requesting
> > for this kind of 'space shared infomation'.[1]
> > 
> > ocfs2 uses flag FIEMAP_EXTENT_SHARED, so does btrfs.
> 
> Looks ok to me.
> 
> > +                   int ref_cnt = 0;
> 
> I think using long is cleaner here, it always fits into (void*), int
> does not.

Good point.

> 
> > +                   /*
> > +                    * As btrfs supports shared space, this information
> > +                    * can be exported to userspace tools via
> > +                    * flag FIEMAP_EXTENT_SHARED.
> > +                    */
> > +                   ret = iterate_inodes_from_logical(
> > +                                   em->block_start,
> > +                                   BTRFS_I(inode)->root->fs_info,
> > +                                   path, count_ext_ref, &ref_cnt);
> > +                   if (ret < 0)
> > +                           goto out_free;
> > +
> > +                   if (ref_cnt > 1)
> > +                           flags |= FIEMAP_EXTENT_SHARED;
> 
> AFAICS, e2fsprogs filefrag does not yet know about FIEMAP_EXTENT_SHARED.

With checking filefrag's code, it's easy to make filefrag aware of this
flag.

I'll make a patch for filefrag unless someone has already done it, thanks.

-liubo
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to