On Fri, Dec 06, 2019 at 04:03:20PM +0900, Naohiro Aota wrote:
> >> +#define BTRFS_SUPER_INFO_SIZE 4096
> >
> >I believe that 4K is very widely used constant.
> >Are you sure that it needs to introduce some
> >additional constant? Especially, it looks slightly
> >strange to see the BTRFS specialized constant.
> >Maybe, it needs to generalize the constant?
>
> I don't think so...
>
> I think it is better to define BTRFS_SUPER_INFO_SIZE here. This is an
> already defined constant in btrfs-progs and this is key value to
> calculate the last superblock location. I think it's OK to define
> btrfs local constant in btrfs.c file...
I agree, the named constant makes the meaning more clear. In the code
where it's used:
> >> + if (ret != -ENOENT) {
> >> + if (wp == zones[0].start << SECTOR_SHIFT)
> >> + wp = (zones[1].start + zones[1].len) <<
> >> SECTOR_SHIFT;
> >> + wp -= BTRFS_SUPER_INFO_SIZE;
> >> + }
If there's just
wp -= 4096;
it's a magic constant out of nowhere. As pointed out, it's defined only
in btrfs.c so it does not pollute namespace in libblkid.