• Anton Altaparmakov's avatar
    NTFS: 2.0.11 - Initial preparations for fake inode based attribute i/o. · 6bb39cd9
    Anton Altaparmakov authored
    - Move definition of ntfs_inode_state_bits to fs/ntfs/inode.h and
      do some macro magic (adapted from include/linux/buffer_head.h) to
      expand all the helper functions NInoFoo(), NInoSetFoo(), and
      NInoClearFoo().
    - Add new flag to ntfs_inode_state_bits: NI_Sparse.
    - Add new fields to ntfs_inode structure to allow use of fake inodes
      for attribute i/o: type, name, name_len. Also add new state bits:
      NI_Attr, which, if set, indicates the inode is a fake inode, and
      NI_MstProtected, which, if set, indicates the attribute uses multi
      sector transfer protection, i.e. fixups need to be applied after
      reads and before/after writes.
    - Rename fs/ntfs/inode.c::ntfs_{new,clear,destroy}_inode() to
      ntfs_{new,clear,destroy}_extent_inode() and update callers.
    - Use ntfs_clear_extent_inode() in fs/ntfs/inode.c::__ntfs_clear_inode()
      instead of ntfs_destroy_extent_inode().
    - Cleanup memory deallocations in {__,}ntfs_clear_{,big_}inode().
    - Make all operations on ntfs inode state bits use the NIno* functions.
    - Set up the new ntfs inode fields and state bits in
      fs/ntfs/inode.c::ntfs_read_inode() and add appropriate cleanup of
      allocated memory to __ntfs_clear_inode().
    - Cleanup ntfs_inode structure a bit for better ordering of elements
      w.r.t. their size to allow better packing of the structure in memory.
    6bb39cd9
mft.c 16.1 KB