|
@@ -292,30 +292,31 @@ Signed-off-by: Richard Weinberger <[email protected]>
|
|
|
- err = ubifs_add_dirt(c, lnum, dlen2);
|
|
- err = ubifs_add_dirt(c, lnum, dlen2);
|
|
|
- if (err)
|
|
- if (err)
|
|
|
- goto out_ro;
|
|
- 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;
|
|
+ offs += aligned_dlen1;
|
|
|
+ if (whiteout) {
|
|
+ if (whiteout) {
|
|
|
+ dent_key_init(c, &key, old_dir->i_ino, &old_dentry->d_name);
|
|
+ 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);
|
|
+ err = ubifs_tnc_add_nm(c, &key, lnum, offs, dlen2, &old_dentry->d_name);
|
|
|
+ if (err)
|
|
+ if (err)
|
|
|
+ goto out_ro;
|
|
+ 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);
|
|
+ ubifs_delete_orphan(c, whiteout->i_ino);
|
|
|
+ } else {
|
|
+ } else {
|
|
|
+ err = ubifs_add_dirt(c, lnum, dlen2);
|
|
+ err = ubifs_add_dirt(c, lnum, dlen2);
|
|
|
+ if (err)
|
|
+ if (err)
|
|
|
+ goto out_ro;
|
|
+ goto out_ro;
|
|
|
-
|
|
|
|
|
-- offs += aligned_dlen1 + aligned_dlen2;
|
|
|
|
|
|
|
++
|
|
|
+ dent_key_init(c, &key, old_dir->i_ino, &old_dentry->d_name);
|
|
+ dent_key_init(c, &key, old_dir->i_ino, &old_dentry->d_name);
|
|
|
+ err = ubifs_tnc_remove_nm(c, &key, &old_dentry->d_name);
|
|
+ err = ubifs_tnc_remove_nm(c, &key, &old_dentry->d_name);
|
|
|
+ if (err)
|
|
+ if (err)
|
|
|
+ goto out_ro;
|
|
+ goto out_ro;
|
|
|
+ }
|
|
+ }
|
|
|
-+
|
|
|
|
|
|
|
+
|
|
|
|
|
+- offs += aligned_dlen1 + aligned_dlen2;
|
|
|
+ offs += aligned_dlen2;
|
|
+ offs += aligned_dlen2;
|
|
|
if (new_inode) {
|
|
if (new_inode) {
|
|
|
ino_key_init(c, &key, new_inode->i_ino);
|
|
ino_key_init(c, &key, new_inode->i_ino);
|