Btrfs: send correct rdev and mode in btrfs-send
authorArne Jansen <sensille@gmx.net>
Mon, 15 Oct 2012 18:28:46 +0000 (18:28 +0000)
committerChris Mason <chris.mason@fusionio.com>
Thu, 25 Oct 2012 19:45:25 +0000 (15:45 -0400)
When sending a device file, the stream was missing the mode. Also the
rdev was encoded wrongly.

Signed-off-by: Arne Jansen <sensille@gmx.net>
fs/btrfs/send.c

index 4f20c49edd58b2e4f3d4f534847d3ba98339081b..97cc5399306b6180c8c6b7334b5eb25600ae60ba 100644 (file)
@@ -2462,7 +2462,8 @@ verbose_printk("btrfs: send_create_inode %llu\n", ino);
                TLV_PUT_PATH(sctx, BTRFS_SEND_A_PATH_LINK, p);
        } else if (S_ISCHR(mode) || S_ISBLK(mode) ||
                   S_ISFIFO(mode) || S_ISSOCK(mode)) {
-               TLV_PUT_U64(sctx, BTRFS_SEND_A_RDEV, rdev);
+               TLV_PUT_U64(sctx, BTRFS_SEND_A_RDEV, new_encode_dev(rdev));
+               TLV_PUT_U64(sctx, BTRFS_SEND_A_MODE, mode);
        }
 
        ret = send_cmd(sctx);