Re: [PATCH 1/6] hfsplus: prevent btree data loss on root split

Dave Chinner
2018-09-01T09:00:07Z

On Fri, Aug 31, 2018 at 11:55:54AM -0300, Ernesto A. Fernï¿½ndez wrote:
> On Thu, Aug 30, 2018 at 10:36:42PM -0700, Christoph Hellwig wrote:
> > On Fri, Aug 31, 2018 at 12:58:19AM -0300, Ernesto A. Fernï¿½ndez wrote:
> > > Creating, renaming or deleting a file may cause catalog corruption and
> > > data loss. This bug is randomly triggered by xfstests generic/027, but
> > > here is a faster reproducer:
> > >
> > > truncate -s 50M fs.iso
> > > mkfs.hfsplus fs.iso
> > > mount fs.iso /mnt
> > > i=100
> > > while [ $i -le 150 ]; do
> > > touch /mnt/$i &>/dev/null
> > > ((++i))
> > > done
> > > i=100
> > > while [ $i -le 150 ]; do
> > > mv /mnt/$i /mnt/$(perl -e "print $i x82") &>/dev/null
> > > ((++i))
> > > done
> > > umount /mnt
> > > fsck.hfsplus -n fs.iso
> >
> > It would be good to wire up this short reproducer as well for xfstests.
>
> Yes, that's my intention. The problem is that mkfs.hfsplus does not allow
> setting the size of the filesystem for scratch_mkfs_sized(); you need a
> workaround with the device mapper. I think I should submit that patch first
> and see if there is a problem with it.

You don't need to do that. We use loop devices like this w/ mkfs_dev
quite a lot in fstests. For example, generic/361 has pretty much the
exact code pattern you need....

Cheers,

Dave.

--
Dave Chinner
david@fromorbit.com