]> git.hungrycats.org Git - linux/commitdiff
Revert "btrfs: don't update mtime on deduped inodes"
authorZygo Blaxell <zblaxell@thirteen.furryterror.org>
Thu, 2 Jul 2015 01:05:38 +0000 (21:05 -0400)
committerZygo Blaxell <zblaxell@thirteen.furryterror.org>
Thu, 2 Jul 2015 01:05:38 +0000 (21:05 -0400)
This reverts commit 2fd3e6fc5df4213e7d2f0cde2bc0e33e08b8da4e.

fs/btrfs/ioctl.c

index 2a43cde65d9b3d611f33a9da49096e31a37c7477..aae4297de0a207361a6fb65e088f0b0cd882608b 100644 (file)
@@ -87,8 +87,7 @@ struct btrfs_ioctl_received_subvol_args_32 {
 
 
 static int btrfs_clone(struct inode *src, struct inode *inode,
-                      u64 off, u64 olen, u64 olen_aligned, u64 destoff,
-                      int no_mtime);
+                      u64 off, u64 olen, u64 olen_aligned, u64 destoff);
 
 /* Mask out flags that are inappropriate for the given type of inode. */
 static inline __u32 btrfs_mask_flags(umode_t mode, __u32 flags)
@@ -3048,7 +3047,7 @@ static int btrfs_extent_same(struct inode *src, u64 loff, u64 olen,
        /* pass original length for comparison so we stay within i_size */
        ret = btrfs_cmp_data(src, loff, dst, dst_loff, olen, &cmp);
        if (ret == 0)
-               ret = btrfs_clone(src, dst, loff, olen, len, dst_loff, 1);
+               ret = btrfs_clone(src, dst, loff, olen, len, dst_loff);
 
        if (same_inode)
                unlock_extent(&BTRFS_I(src)->io_tree, same_lock_start,
@@ -3213,17 +3212,13 @@ static int clone_finish_inode_update(struct btrfs_trans_handle *trans,
                                     struct inode *inode,
                                     u64 endoff,
                                     const u64 destoff,
-                                    const u64 olen,
-                                    int no_mtime)
+                                    const u64 olen)
 {
        struct btrfs_root *root = BTRFS_I(inode)->root;
        int ret;
 
        inode_inc_iversion(inode);
-       if (no_mtime)
-               inode->i_ctime = CURRENT_TIME;
-       else
-               inode->i_mtime = inode->i_ctime = CURRENT_TIME;
+       inode->i_mtime = inode->i_ctime = CURRENT_TIME;
        /*
         * We round up to the block size at eof when determining which
         * extents to clone above, but shouldn't round up the file size.
@@ -3308,13 +3303,13 @@ static void clone_update_extent_map(struct inode *inode,
  * @inode: Inode to clone to
  * @off: Offset within source to start clone from
  * @olen: Original length, passed by user, of range to clone
- * @olen_aligned: Block-aligned value of olen
+ * @olen_aligned: Block-aligned value of olen, extent_same uses
+ *               identical values here
  * @destoff: Offset within @inode to start clone
- * @no_mtime: Whether to update mtime on the target inode
  */
 static int btrfs_clone(struct inode *src, struct inode *inode,
                       const u64 off, const u64 olen, const u64 olen_aligned,
-                      const u64 destoff, int no_mtime)
+                      const u64 destoff)
 {
        struct btrfs_root *root = BTRFS_I(inode)->root;
        struct btrfs_path *path = NULL;
@@ -3638,7 +3633,7 @@ process_slot:
                                              root->sectorsize);
                        ret = clone_finish_inode_update(trans, inode,
                                                        last_dest_end,
-                                                       destoff, olen, no_mtime);
+                                                       destoff, olen);
                        if (ret)
                                goto out;
                        if (new_key.offset + datal >= destoff + len)
@@ -3676,7 +3671,7 @@ process_slot:
                clone_update_extent_map(inode, trans, NULL, last_dest_end,
                                        destoff + len - last_dest_end);
                ret = clone_finish_inode_update(trans, inode, destoff + len,
-                                               destoff, olen, no_mtime);
+                                               destoff, olen);
        }
 
 out:
@@ -3806,7 +3801,7 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
                btrfs_double_extent_lock(src, off, inode, destoff, len);
        }
 
-       ret = btrfs_clone(src, inode, off, olen, len, destoff, 0);
+       ret = btrfs_clone(src, inode, off, olen, len, destoff);
 
        if (same_inode) {
                u64 lock_start = min_t(u64, off, destoff);