Re: What's cooking in e2fsprogs.git (topics)

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

 



Theodore Tso wrote:
> On Sun, Feb 24, 2008 at 09:20:50PM -0700, Andreas Dilger wrote:
>> On Feb 22, 2008  19:15 -0500, Theodore Ts'o wrote:
>>> So before the recent patch were we actually creating long symlinks in
>>> extents format?  Or were we just setting the flag but still treating
>>> them as a block number?  If it was the latter, I guess we can put in
>>> code into e2fsck to detect that case, and convert it back to a
>>> singleton block number.  
>> Eric informed me that the long symlinks were actually stored in extent
>> mapped blocks.  That is not harmful, because it can only be a single
>> block and it will always fit into the inode.  The other thing to note
>> is that extent mapping is REQUIRED for > 32-bit blocknumbers, so we
>> may as well fix e2fsprogs to allow these symlinks to be handled normally.
> 
> Well, at least some kernel versions (as of sometime just before
> 2.6.25, iirc) were storing the long symlink as a single block in
> i_block[0], despite EXTENTS_FL being set.  Valerie noticed this, and I
> confirmed it, as it caused the mainline e2fsck extents support to core
> dump.  Basically, what this means is that e2fsprogs can't trust
> EXTENTS_FL for long symlinks.

Are you sure?  This was her patch comment, from
[PATCH] ext4: Don't set EXTENTS_FL flag for fast symlinks:

> For fast symbolic links, the file content is stored in the i_block[]
> array, which is not compatible with the new file extents format.
> e2fsck reports error on such files because EXTENTS_FL is set.
> Don't set the EXTENTS_FL flag when creating fast symlinks.

so this was for *fast* symlinks, stored internally on top of the i_block
array, right?  In that case trying to read it as extents would certainly
cause problems.  But, for *long* symlinks I think they truly were stored
in extent format, and as you say...

> But you do raise a good point that we need to support using the
> extents format in order to support blocks > 2**32, so we can't just
> arbitrary convert all symlinks to the old-style direct block maps.

... so I think we really *should* be unconditionally storing *long*
symlinks in extent format, on ext4... right?

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

[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux