Skip to content
  • Artem Bityutskiy's avatar
    fat: introduce special inode for managing the FSINFO block · 020ac5b6
    Artem Bityutskiy authored
    
    
    This is patchset makes fatfs stop using the VFS '->write_super()' method
    for writing out the FSINFO block.
    
    The final goal is to get rid of the 'sync_supers()' kernel thread.  This
    kernel thread wakes up every 5 seconds (by default) and calls
    '->write_super()' for all mounted file-systems.  And the bad thing is that
    this is done even if all the superblocks are clean.  Moreover, some
    file-systems do not even need this end they do not register the
    '->write_super()' method at all (e.g., btrfs).
    
    So 'sync_supers()' most often just generates useless wake-ups and wastes
    power.  I am trying to make all file-systems independent of
    '->write_super()' and plan to remove 'sync_supers()' and '->write_super'
    completely once there are no more users.
    
    The '->write_supers()' method is mostly used by baroque file-systems like
    hfs, udf, etc.  Modern file-systems like btrfs and xfs do not use it.
    This justifies removing this stuff from VFS completely and make every FS
    self-manage own superblock.
    
    Tested with xfstests.
    
    This patch:
    
    Preparation for further changes.  It introduces a special inode
    ('fsinfo_inode') in FAT file-system which we'll later use for managing the
    FSINFO block.  Note, this there is already one special inode ('fat_inode')
    which is used for managing the FAT tables.
    
    Introduce new 'MSDOS_FSINFO_INO' constant for this special inode.  It is
    safe to do because FAT file-system does not store inode numbers on the
    media but generates them run-time.
    
    I've also cleaned up the comment to existing 'MSDOS_ROOT_INO' constant,
    while on it.
    
    Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    020ac5b6