1. 16 10月, 2007 1 次提交
    • V
      [XFS] get_bulkall() could return incorrect inode state · 859d7182
      Vlad Apostolov 提交于
      In the following scenario xfs_bulkstat() returns incorrect stale inode
      state:
      
      1. File_A is created and its inode synced to disk. 2. File_A is unlinked
      and doesn't exist anymore. 3. Filesystem sync is invoked. 4. File_B is
      created. File_B happens to reclaim File_A's inode. 5. xfs_bulkstat() is
      called and detects File_B but reports the
      
      incorrect File_A inode state.
      
      Explanation for the incorrect inode state is that inodes are not
      immediately synced on file create for performance reasons. This leaves the
      on-disk inode buffer uninitialized (or with old state from a previous
      generation inode) and this is what xfs_bulkstat() would report.
      
      The patch marks the on-disk inode buffer "dirty" on unlink. When the inode
      is reclaimed (by a new file create), xfs_bulkstat() would filter this
      inode by the "dirty" mark. Once the inode is flushed to disk, the on-disk
      buffer "dirty" mark is automatically removed and a following
      xfs_bulkstat() would return the correct inode state.
      
      Marking the on-disk inode buffer "dirty" on unlink is achieved by setting
      the on-disk di_nlink field to 0. Note that the in-core di_nlink has
      already been set to 0 and a corresponding transaction logged by
      xfs_droplink(). This is an exception from the rule that any on-disk inode
      buffer changes has to be followed by a disk write (inode flush).
      Synchronizing the in-core to on-disk di_nlink values in advance (before
      the actual inode flush to disk) should be fine in this case because the
      inode is already unlinked and it would never change its di_nlink again for
      this inode generation.
      
      SGI-PV: 970842
      SGI-Modid: xfs-linux-melb:xfs-kern:29757a
      Signed-off-by: NVlad Apostolov <vapo@sgi.com>
      Signed-off-by: NAlex Elder <aelder@sgi.com>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NMark Goodwin <markgw@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      859d7182
  2. 15 10月, 2007 1 次提交
    • C
      [XFS] dinode endianess annotations · 347d1c01
      Christoph Hellwig 提交于
      Biggest bit is duplicating the dinode structure so we have one annotated for
      native endianess and one for disk endianess. The other significant change
      is that xfs_xlate_dinode_core is split into one helper per direction to
      allow for proper annotations, everything else is trivial.
      
      As a sidenode splitting out the incore dinode means we can move it into
      xfs_inode.h in a later patch and severely improving on the include hell in
      xfs.
      
      SGI-PV: 968563
      SGI-Modid: xfs-linux-melb:xfs-kern:29476a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      347d1c01
  3. 14 7月, 2007 1 次提交
    • M
      [XFS] Fix XFS_IOC_FSBULKSTAT{,_SINGLE} & XFS_IOC_FSINUMBERS in compat mode · faa63e95
      Michal Marek 提交于
      * 32bit struct xfs_fsop_bulkreq has different size and layout of
      members, no matter the alignment. Move the code out of the #else
      branch (why was it there in the first place?). Define _32 variants of
      the ioctl constants.
      * 32bit struct xfs_bstat is different because of time_t and on
      i386 because of different padding. Make xfs_bulkstat_one() accept a
      custom "output formatter" in the private_data argument which takes care
      of the xfs_bulkstat_one_compat() that takes care of the different
      layout in the compat case.
      * i386 struct xfs_inogrp has different padding.
      Add a similar "output formatter" mecanism to xfs_inumbers().
      
      SGI-PV: 967354
      SGI-Modid: xfs-linux-melb:xfs-kern:29102a
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      faa63e95
  4. 09 5月, 2007 1 次提交
  5. 28 9月, 2006 12 次提交
  6. 20 6月, 2006 1 次提交
  7. 09 6月, 2006 2 次提交
  8. 29 3月, 2006 1 次提交
  9. 17 3月, 2006 1 次提交
  10. 11 1月, 2006 2 次提交
  11. 02 11月, 2005 3 次提交
  12. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4