On Sun, Oct 06, 2013 at 10:22:33PM +0100, Filipe David Borba Manana wrote:
> 2) On 32 bits machines. Th VFS hash values are unsigned longs, which
>    are 32 bits wide on 32 bits machines, and the inode (objectid)
>    numbers are 64 bits unsigned integers. We simply cast the inode
>    numbers to hash values, which means that for all inodes with the
>    same 32 bits lower half, the same hash bucket is used for all of
>    them. For example, all inodes with a number (objectid) between
>    0x0000_0000_ffff_ffff and 0xffff_ffff_ffff_ffff will end up in
>    the same hash table bucket.

Well, inode number that does not fit into 32 bits on a 32 bit machine
causes other problems. And subvolume ids that do not fit into 32 bits
cannot be stored in radix tree.

It would be safer to refuse creating/accessing inode/subvolume with
nubmer that does not fit into 32bits.

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

Reply via email to