]> granicus.if.org Git - zfs/commitdiff
6939941 problem with moving files in zfs
authorMark Shellenbaum <Mark.Shellenbaum@Sun.COM>
Tue, 6 Apr 2010 01:59:44 +0000 (19:59 -0600)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 4 Nov 2013 18:53:18 +0000 (10:53 -0800)
References:
  illumos/illumos-gate@d39ee142a97a7c58f60f7b52c62409f2ff64b234

Ported-by: Richard Yao <ryao@gentoo.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #1775

Porting notes:

1. This commit was so old that only two lines applied to the modern
   code base.

module/zfs/zfs_vnops.c

index b5333634e07d4f85a17df6ea7ebe67115e90cfcf..9500af62d8619e9caba2c6a2174ff8c184a09679 100644 (file)
@@ -3174,7 +3174,7 @@ zfs_rename(struct inode *sdip, char *snm, struct inode *tdip, char *tnm,
        ZFS_VERIFY_ZP(sdzp);
        zilog = zsb->z_log;
 
-       if (tdip->i_sb != sdip->i_sb) {
+       if (tdip->i_sb != sdip->i_sb || zfsctl_is_node(tdip)) {
                ZFS_EXIT(zsb);
                return (SET_ERROR(EXDEV));
        }
@@ -3716,7 +3716,7 @@ zfs_link(struct inode *tdip, struct inode *sip, char *name, cred_t *cr)
                return (SET_ERROR(EPERM));
        }
 
-       if (sip->i_sb != tdip->i_sb) {
+       if (sip->i_sb != tdip->i_sb || zfsctl_is_node(sip)) {
                ZFS_EXIT(zsb);
                return (SET_ERROR(EXDEV));
        }