Re: [PATCH v3] nilfs2: implement calculation of free inodes count

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ryusuke,

On Thu, 2013-05-16 at 07:59 +0900, Ryusuke Konishi wrote:

[snip]
> > 
> > This patch still has a potential overflow issue that I pointed out in
> > the previous comment; the patch handles the number of descriptor
> > blocks in 32-bit wide variables without checking its upper limit.
> > 
> > If you won't to add checks for the number of descriptor blocks, I
> > propose you to change the definition of nilfs_palloc_groups_count() instead:
> > 
> >   static inline unsigned long
> >   nilfs_palloc_groups_count(const struct inode *inode)
> >   {
> > - 	return 1UL << (BITS_PER_LONG - (inode->i_blkbits + 3 /* log2(8) */));
> > + 	return nilfs_palloc_groups_per_desc_block(inode) << 32;
> >   }
> > 

I think the real reason of problem is in using constants (BITS_PER_LONG
for the first case and 32 for the second one). But, anyway, it makes
sense to operate by volume size in this calculation. Because namely
volume size is the real limitation for calculation of maximum available
groups count.

What do you think about using volume size in this calculation?

With the best regards,
Vyacheslav Dubeyko.

> > This implies the maximum number of descriptor block is 1 ^ 32.
> > 
> > Because the above diff changes the maximum number of groups, I think
> > it should be inserted as a separate patch.
> 
> Oops, sorry, this change can overflow in 32-bit architectures
> because the type of return value is still unsigned long.
> That calculation should be revised more carefully.
> 
> Ryusuke Konishi
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux