Whamcloud - gitweb
LU-5626 ldiskfs: update non-htree dotdot in rename 85/12585/2
authorBob Glossman <bob.glossman@intel.com>
Wed, 5 Nov 2014 17:40:42 +0000 (09:40 -0800)
committerAndreas Dilger <andreas.dilger@intel.com>
Fri, 7 Nov 2014 18:58:01 +0000 (18:58 +0000)
commit4f8edadbbd3ba70d9236e98518182b4d3ff5acdb
tree347d58d098cc7c565250410195753dc96056f398
parent42952835dced08e427bf55572b7cd653c1479055
LU-5626 ldiskfs: update non-htree dotdot in rename

This mod duplicates changes previously committed only for el6
for sles11sp3.

In 2.4+, when renaming a directory, its old dotdot entry will
be removed firstly, then the new dotdot entry is inserted, and
ldiskfs tries to append FID-in-dirent to the new entry.
But the space for dotdot entry may not be enough to hold
the new dotdot with FID-in-dirent, such as an MDT device
restored from file-level backup, or a device upgraded from 1.8.

In that case, for non-HTree directories, the ".." entry
will be written in the next available space in the directory
block.  This is invalid, as the ".." entry must be the
second entry in the block.

The same bug was fixed for HTree directories in LU-2638.
As Fan Yong said then: we do not want to introduce
complex logic to handle directory data moving, instead, in
such case, ignore the FID-in-dirent for the new dotdot entry,
and just insert the new dotdot entry.

There is one known flaw: This patch, like the one for
LU-2638, skips the entire data section rather than just
the FID.  This could cause trouble if something else ever
uses this section with ".." entries.

Test-Parameters: mdsdistro=sles11sp3 ossdistro=sles11sp3 \
 mdsfilesystemtype=ldiskfs mdtfilesystemtype=ldiskfs \
 ostfilesystemtype=ldiskfs

Signed-off-by: Bob Glossman <bob.glossman@intel.com>
Change-Id: Iaba11ac19ab7f802925af7a562ad7f739e6ed5c8
Reviewed-on: http://review.whamcloud.com/12585
Tested-by: Jenkins
Reviewed-by: Patrick Farrell <paf@cray.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
ldiskfs/kernel_patches/patches/sles11sp2/ext4-data-in-dirent.patch