• C
    f2fs: save device node number into f2fs_inode · 7d79e75f
    Changman Lee 提交于
    This patch stores inode->i_rdev into on-disk inode structure.
    
    Alun reported that:
     aspire tmp # mount -t f2fs /dev/sdb mnt
     aspire tmp # mknod mnt/sda1 b 8 1
     aspire tmp # mknod mnt/null c 1 3
     aspire tmp # mknod mnt/console c 5 1
     aspire tmp # ls -l mnt
     total 2
     crw-r--r-- 1 root root 5, 1 Jan 22 18:44 console
     crw-r--r-- 1 root root 1, 3 Jan 22 18:44 null
     brw-r--r-- 1 root root 8, 1 Jan 22 18:44 sda1
     aspire tmp # umount mnt
     aspire tmp # mount -t f2fs /dev/sdb mnt
     aspire tmp # ls -l mnt
     total 2
     crw-r--r-- 1 root root 0, 0 Jan 22 18:44 console
     crw-r--r-- 1 root root 0, 0 Jan 22 18:44 null
     brw-r--r-- 1 root root 0, 0 Jan 22 18:44 sda1
    
    In this report, f2fs lost the major/minor numbers of device files after umount.
    The reason was revealed that f2fs does not store the inode->i_rdev to the
    on-disk inode data structure.
    
    So, as the other file systems do, f2fs also stores i_rdev into the i_addr fields
    in on-disk inode structure without any on-disk layout changes.
    Note that, this bug is limited to device files made by mknod().
    Reported-and-Tested-by: NAlun Jones <alun.linux@ty-penguin.org.uk>
    Signed-off-by: NChangman Lee <cm224.lee@samsung.com>
    Signed-off-by: NJaegeuk Kim <jaegeuk.kim@samsung.com>
    7d79e75f
inode.c 7.6 KB