On 01/26/2011 02:53 AM, Li Zefan wrote:
> Here comes the compatability issue. It's fine to mount old btrfs, because
> we'll just use the original way to find free ino. But we can't mount new btrfs
> in older kernels, because the OFFSET makes highest objectid overflow when it
> is cast to unsigned long in 32bits system.
> 
> We can store ino extents to a seperate btree, and then the new btrfs can
> be mounted in older kernels, but another problem will arise when remounting it
> in new kernels - creating new files will probably fail (but not oops)
> because the ino extent items are not consistent with inode items.
> 
> If the above behavior (failing to create files) is not acceptable, we'll
> have to add an incompat flag.

I can't comment the patch from a technical point of view. However I want
to add a my comment about the compatibility issues.

I remember that Linus was not happy about a filesystem which is not
compatible when the the kernel version decrease. IIRC during the switch
from ext3 to ext4 there were some issues during a git bis-sect process.

So my suggestions are:
- don't allow that an automatic switch to the new inode allocation
policy. It should be the user to force this switch ( via a mount option
for example)
- in case the performance regression are noticeable, allow the user to
use the old policy, which, if I understood correctly, work fine on a 64
bit system [*].

Regards
G.Baroncelli


[*] Supposing to create continuously 1000 file per sec, it needs
2^64/1000 sec = ~ 573.000.000 years to exhaust all the available inode
numbers.

--
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