kernel: update kernel 4.4 to version 4.4.22
[openwrt/staging/wigyori.git] / target / linux / generic / patches-4.4 / 052-02-ubifs-Implement-RENAME_WHITEOUT.patch
index 9abb923932fc6186bbe69af56d6789ef119549c7..dd75ef4f47485a160eb1dcaa4f03743416f7cc78 100644 (file)
@@ -292,30 +292,31 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
 -      err = ubifs_add_dirt(c, lnum, dlen2);
 -      if (err)
 -              goto out_ro;
+-
+-      dent_key_init(c, &key, old_dir->i_ino, &old_dentry->d_name);
+-      err = ubifs_tnc_remove_nm(c, &key, &old_dentry->d_name);
+-      if (err)
+-              goto out_ro;
 +      offs += aligned_dlen1;
 +      if (whiteout) {
 +              dent_key_init(c, &key, old_dir->i_ino, &old_dentry->d_name);
 +              err = ubifs_tnc_add_nm(c, &key, lnum, offs, dlen2, &old_dentry->d_name);
 +              if (err)
 +                      goto out_ro;
--      dent_key_init(c, &key, old_dir->i_ino, &old_dentry->d_name);
--      err = ubifs_tnc_remove_nm(c, &key, &old_dentry->d_name);
--      if (err)
--              goto out_ro;
++
 +              ubifs_delete_orphan(c, whiteout->i_ino);
 +      } else {
 +              err = ubifs_add_dirt(c, lnum, dlen2);
 +              if (err)
 +                      goto out_ro;
--      offs += aligned_dlen1 + aligned_dlen2;
++
 +              dent_key_init(c, &key, old_dir->i_ino, &old_dentry->d_name);
 +              err = ubifs_tnc_remove_nm(c, &key, &old_dentry->d_name);
 +              if (err)
 +                      goto out_ro;
 +      }
-+
+-      offs += aligned_dlen1 + aligned_dlen2;
 +      offs += aligned_dlen2;
        if (new_inode) {
                ino_key_init(c, &key, new_inode->i_ino);