diff options
| author | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2017-03-15 02:14:00 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2017-03-15 02:14:00 +0000 |
| commit | c29b2d6c1cc011ddce156e0f3fb64e7de71c0b10 (patch) | |
| tree | 910dd49406e48b1eb9f836f316b702dd092b7fa9 /fs | |
| parent | 80eb54008126309256b17148a0e0a4acfb839dd0 (diff) | |
| parent | 8353f338def1df3b58150cf1d6f42d1a51902b55 (diff) | |
fat: fix using uninitialized fields of fat_inode/fsinfo_inode
am: 8353f338de
Change-Id: I8079951acacf4ede0afacd719fef7218b5a4b118
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/fat/inode.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/fs/fat/inode.c b/fs/fat/inode.c index 509411dd3698..cf644d52c0cf 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c @@ -1269,6 +1269,16 @@ out: return 0; } +static void fat_dummy_inode_init(struct inode *inode) +{ + /* Initialize this dummy inode to work as no-op. */ + MSDOS_I(inode)->mmu_private = 0; + MSDOS_I(inode)->i_start = 0; + MSDOS_I(inode)->i_logstart = 0; + MSDOS_I(inode)->i_attrs = 0; + MSDOS_I(inode)->i_pos = 0; +} + static int fat_read_root(struct inode *inode) { struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb); @@ -1713,12 +1723,13 @@ int fat_fill_super(struct super_block *sb, void *data, int silent, int isvfat, fat_inode = new_inode(sb); if (!fat_inode) goto out_fail; - MSDOS_I(fat_inode)->i_pos = 0; + fat_dummy_inode_init(fat_inode); sbi->fat_inode = fat_inode; fsinfo_inode = new_inode(sb); if (!fsinfo_inode) goto out_fail; + fat_dummy_inode_init(fsinfo_inode); fsinfo_inode->i_ino = MSDOS_FSINFO_INO; sbi->fsinfo_inode = fsinfo_inode; insert_inode_hash(fsinfo_inode); |
