• Andrew Morton's avatar
    [PATCH] handle bad inodes in put_inode · 68fa8120
    Andrew Morton authored
    From: "J. Bruce Fields" <bfields@fieldses.org>
    
    If the NFS daemon is presented with a filehandle for a file that has
    been deleted, it does an iget() in fs/exportfs/expfs.c:export_iget() and
    gets a bad inode back.  When it subsequently iput()s the inode, the
    result is:
    
    Mar 27 12:53:40 snoopy kernel: EXT2-fs error (device ide0(3,3)): ext2_free_blocks: Freeing blocks not in datazone - block = 1802201963, count = 27499
    Mar 27 12:53:40 snoopy kernel: Remounting filesystem read-only
    
    The same can happen if ext2_get_inode() returns an error - ext2_read_inode()
    will return an uninitialised inode and ext2_put_inode() is not allowed to go
    looking inside the bad inode.
    68fa8120
inode.c 84.6 KB