On 07/07/2010 01:39 PM, Jiro SEKIBA wrote: > Hi, > > This patch fixes calculation of 2nd superblock position. > > nilfs2 has two super blocks, the 1st one is at beginning of the partition, > the 2nd one is the end of partition. 2nd one resides at last 4k block. > However when the partition size is not a multiple of 4k bytes, the > remainder will be ignored. > > 2010-07-07 Jiro SEKIBA > > * fs/nilfs2.c: fix macro NILFS_2ND_SUPER_BLOCK to calculate > 2nd superblock position from partition size. > > Go ahead for trunk > === modified file 'fs/nilfs2.c' > --- fs/nilfs2.c 2010-05-31 18:49:42 +0000 > +++ fs/nilfs2.c 2010-07-07 10:58:13 +0000 > @@ -52,9 +52,9 @@ > /* nilfs 1st super block posission from beginning of the partition > in 512 block size */ > #define NILFS_1ST_SUPER_BLOCK 2 > -/* nilfs 2nd super block posission from end of the partition > +/* nilfs 2nd super block posission from beginning of the partition > in 512 block size */ > -#define NILFS_2ND_SUPER_BLOCK 8 > +#define NILFS_2ND_SUPER_BLOCK(devsize) (((devsize >> 3) - 1) << 3) > > struct grub_nilfs2_inode > { > @@ -729,7 +729,7 @@ > if (partition_size != GRUB_DISK_SIZE_UNKNOWN) > { > /* Read second super block. */ > - grub_disk_read (disk, partition_size - NILFS_2ND_SUPER_BLOCK, 0, > + grub_disk_read (disk, NILFS_2ND_SUPER_BLOCK (partition_size), 0, > sizeof (struct grub_nilfs2_super_block), &sb2); > /* Make sure if 2nd super block is valid. */ > valid[1] = grub_nilfs2_valid_sb (&sb2); > > > -- Regards Vladimir 'φ-coder/phcoder' Serbinenko