]> Pileus Git - ~andy/linux/blobdiff - fs/btrfs/ioctl.c
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
[~andy/linux] / fs / btrfs / ioctl.c
index 9a780c8d0ac83df7bc2444d90830e3214649e8a4..cdbb054102b9f860ee4d119dfff39e891ac29438 100644 (file)
@@ -830,6 +830,7 @@ out_up_write:
 out_unlock:
        mutex_unlock(&inode->i_mutex);
        if (!err) {
+               shrink_dcache_sb(root->fs_info->sb);
                btrfs_invalidate_inodes(dest);
                d_delete(dentry);
        }
@@ -1122,8 +1123,10 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
                                        datao += off - key.offset;
                                        datal -= off - key.offset;
                                }
-                               if (key.offset + datao + datal > off + len)
-                                       datal = off + len - key.offset - datao;
+
+                               if (key.offset + datal > off + len)
+                                       datal = off + len - key.offset;
+
                                /* disko == 0 means it's a hole */
                                if (!disko)
                                        datao = 0;