generic: 6.6: manually refresh pending patches
[openwrt/staging/981213.git] / target / linux / generic / pending-6.6 / 141-jffs2-add-RENAME_EXCHANGE-support.patch
index f58fc791d2815709400a3ea500181149e05973bc..c3a528ec9026aa8bde34ed7af9b564d82aeb4823 100644 (file)
@@ -6,7 +6,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/fs/jffs2/dir.c
 +++ b/fs/jffs2/dir.c
-@@ -787,18 +787,31 @@ static int jffs2_rename (struct user_nam
+@@ -791,18 +791,31 @@ static int jffs2_rename (struct mnt_idma
        int ret;
        struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
        struct jffs2_inode_info *victim_f = NULL;
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                victim_f = JFFS2_INODE_INFO(d_inode(new_dentry));
                if (d_is_dir(new_dentry)) {
                        struct jffs2_full_dirent *fd;
-@@ -833,7 +846,7 @@ static int jffs2_rename (struct user_nam
+@@ -837,7 +850,7 @@ static int jffs2_rename (struct mnt_idma
        if (ret)
                return ret;
  
@@ -49,10 +49,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                /* There was a victim. Kill it off nicely */
                if (d_is_dir(new_dentry))
                        clear_nlink(d_inode(new_dentry));
-@@ -859,6 +872,12 @@ static int jffs2_rename (struct user_nam
+@@ -863,6 +876,12 @@ static int jffs2_rename (struct mnt_idma
        if (flags & RENAME_WHITEOUT)
                /* Replace with whiteout */
-               ret = jffs2_whiteout(mnt_userns, old_dir_i, old_dentry);
+               ret = jffs2_whiteout(idmap, old_dir_i, old_dentry);
 +      else if (flags & RENAME_EXCHANGE)
 +              /* Replace the original */
 +              ret = jffs2_do_link(c, JFFS2_INODE_INFO(old_dir_i),
@@ -62,7 +62,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        else
                /* Unlink the original */
                ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
-@@ -890,7 +909,7 @@ static int jffs2_rename (struct user_nam
+@@ -895,7 +914,7 @@ static int jffs2_rename (struct mnt_idma
                return ret;
        }
  
@@ -70,4 +70,4 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +      if (d_is_dir(old_dentry) && !(flags & RENAME_EXCHANGE))
                drop_nlink(old_dir_i);
  
-       new_dir_i->i_mtime = new_dir_i->i_ctime = old_dir_i->i_mtime = old_dir_i->i_ctime = ITIME(now);
+       old_dir_i->i_mtime = inode_set_ctime_to_ts(old_dir_i, ITIME(now));