1. 01 9月, 2009 1 次提交
  2. 02 7月, 2009 1 次提交
  3. 19 6月, 2009 1 次提交
  4. 12 6月, 2009 1 次提交
  5. 10 6月, 2009 1 次提交
  6. 08 6月, 2009 2 次提交
    • C
      xfs: split xfs_sync_inodes · 075fe102
      Christoph Hellwig 提交于
      xfs_sync_inodes is used to write back either file data or inode metadata.
      In general we always do these separately, except for one fishy case in
      xfs_fs_put_super that does both.  So separate xfs_sync_inodes into
      separate xfs_sync_data and xfs_sync_attr functions.  In xfs_fs_put_super
      we first call the data sync and then the attr sync as that was the previous
      order.  The moved log force in that path doesn't make a difference because
      we will force the log again as part of the real unmount process.
      
      The filesystem readonly checks are not performed by the new function but
      instead moved into the callers, given that most callers alredy have it
      further up in the stack.  Also add debug checks that we do not pass in
      incorrect flags in the new xfs_sync_data and xfs_sync_attr function and
      fix the one place that did pass in a wrong flag.
      
      Also remove a comment mentioning xfs_sync_inodes that has been incorrect
      for a while because we always take either the iolock or ilock in the
      sync path these days.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NEric Sandeen <sandeen@sandeen.net>
      075fe102
    • C
      xfs: kill xfs_qmops · 7d095257
      Christoph Hellwig 提交于
      Kill the quota ops function vector and replace it with direct calls or
      stubs in the CONFIG_XFS_QUOTA=n case.
      
      Make sure we check XFS_IS_QUOTA_RUNNING in the right spots.  We can remove
      the number of those checks because the XFS_TRANS_DQ_DIRTY flag can't be set
      otherwise.
      
      This brings us back closer to the way this code worked in IRIX and earlier
      Linux versions, but we keep a lot of the more useful factoring of common
      code.
      
      Eventually we should also kill xfs_qm_bhv.c, but that's left for a later
      patch.
      
      Reduces the size of the source code by about 250 lines and the size of
      XFS module by about 1.5 kilobytes with quotas enabled:
      
         text	   data	    bss	    dec	    hex	filename
       615957	   2960	   3848	 622765	  980ad	fs/xfs/xfs.o
       617231	   3152	   3848	 624231	  98667	fs/xfs/xfs.o.old
      
      Fallout:
      
       - xfs_qm_dqattach is split into xfs_qm_dqattach_locked which expects
         the inode locked and xfs_qm_dqattach which does the locking around it,
         thus removing XFS_QMOPT_ILOCKED.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NEric Sandeen <sandeen@sandeen.net>
      7d095257
  7. 29 3月, 2009 1 次提交
  8. 07 3月, 2009 2 次提交
  9. 04 3月, 2009 1 次提交
  10. 09 2月, 2009 2 次提交
  11. 04 2月, 2009 1 次提交
  12. 19 1月, 2009 2 次提交
  13. 10 1月, 2009 1 次提交
    • T
      filesystem freeze: add error handling of write_super_lockfs/unlockfs · c4be0c1d
      Takashi Sato 提交于
      Currently, ext3 in mainline Linux doesn't have the freeze feature which
      suspends write requests.  So, we cannot take a backup which keeps the
      filesystem's consistency with the storage device's features (snapshot and
      replication) while it is mounted.
      
      In many case, a commercial filesystem (e.g.  VxFS) has the freeze feature
      and it would be used to get the consistent backup.
      
      If Linux's standard filesystem ext3 has the freeze feature, we can do it
      without a commercial filesystem.
      
      So I have implemented the ioctls of the freeze feature.
      I think we can take the consistent backup with the following steps.
      1. Freeze the filesystem with the freeze ioctl.
      2. Separate the replication volume or create the snapshot
         with the storage device's feature.
      3. Unfreeze the filesystem with the unfreeze ioctl.
      4. Take the backup from the separated replication volume
         or the snapshot.
      
      This patch:
      
      VFS:
      Changed the type of write_super_lockfs and unlockfs from "void"
      to "int" so that they can return an error.
      Rename write_super_lockfs and unlockfs of the super block operation
      freeze_fs and unfreeze_fs to avoid a confusion.
      
      ext3, ext4, xfs, gfs2, jfs:
      Changed the type of write_super_lockfs and unlockfs from "void"
      to "int" so that write_super_lockfs returns an error if needed,
      and unlockfs always returns 0.
      
      reiserfs:
      Changed the type of write_super_lockfs and unlockfs from "void"
      to "int" so that they always return 0 (success) to keep a current behavior.
      Signed-off-by: NTakashi Sato <t-sato@yk.jp.nec.com>
      Signed-off-by: NMasayuki Hamaguchi <m-hamaguchi@ys.jp.nec.com>
      Cc: <xfs-masters@oss.sgi.com>
      Cc: <linux-ext4@vger.kernel.org>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Dave Kleikamp <shaggy@austin.ibm.com>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Alasdair G Kergon <agk@redhat.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c4be0c1d
  14. 06 1月, 2009 1 次提交
  15. 04 12月, 2008 4 次提交
  16. 01 12月, 2008 3 次提交
  17. 30 10月, 2008 15 次提交