1. 05 3月, 2010 6 次提交
    • C
      dquot: cleanup dquot transfer routine · b43fa828
      Christoph Hellwig 提交于
      Get rid of the transfer dquot operation - it is now always called from
      the filesystem and if a filesystem really needs it's own (which none
      currently does) it can just call into it's own routine directly.
      
      Rename the now static low-level dquot_transfer helper to __dquot_transfer
      and vfs_dq_transfer to dquot_transfer to have a consistent namespace,
      and make the new dquot_transfer return a normal negative errno value
      which all callers expect.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJan Kara <jack@suse.cz>
      b43fa828
    • C
      dquot: cleanup inode allocation / freeing routines · 63936dda
      Christoph Hellwig 提交于
      Get rid of the alloc_inode and free_inode dquot operations - they are
      always called from the filesystem and if a filesystem really needs
      their own (which none currently does) it can just call into it's
      own routine directly.
      
      Also get rid of the vfs_dq_alloc/vfs_dq_free wrappers and always
      call the lowlevel dquot_alloc_inode / dqout_free_inode routines
      directly, which now lose the number argument which is always 1.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJan Kara <jack@suse.cz>
      63936dda
    • C
      dquot: cleanup space allocation / freeing routines · 5dd4056d
      Christoph Hellwig 提交于
      Get rid of the alloc_space, free_space, reserve_space, claim_space and
      release_rsv dquot operations - they are always called from the filesystem
      and if a filesystem really needs their own (which none currently does)
      it can just call into it's own routine directly.
      
      Move shared logic into the common __dquot_alloc_space,
      dquot_claim_space_nodirty and __dquot_free_space low-level methods,
      and rationalize the wrappers around it to move as much as possible
      code into the common block for CONFIG_QUOTA vs not.  Also rename
      all these helpers to be named dquot_* instead of vfs_dq_*.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJan Kara <jack@suse.cz>
      5dd4056d
    • D
      ext3: quota_write cross block boundary behaviour · e5472147
      Dmitry Monakhov 提交于
      We always assume what dquot update result in changes in one data block
      But ext3_quota_write() function may handle cross block boundary writes
      In fact if this ever happen it will result in incorrect journal credits
      reservation. And later bug_on triggering. As soon this never happen the
      boundary cross loop is NOOP. In order to make things straight
      let's remove this loop and assert cross boundary condition.
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      e5472147
    • D
      ext3: trivial quota cleanup · e1f5c67a
      Dmitry Monakhov 提交于
      The patch is aimed to reorganize and simplify quota code a bit.
      Quota code is itself complex enouth, but we can make it more readable
      in some places:
      - Move quota option parsing to separate functions.
      - Simplify old-quota and journaled-quota mix check.
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      e1f5c67a
    • D
      ext3: mount flags manipulation cleanup · e3c96435
      Dmitry Monakhov 提交于
      Replace intermediate EXT3_MOUNT_XXX flags manipulation to
      corresponding macro.
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      e3c96435
  2. 23 12月, 2009 4 次提交
  3. 10 12月, 2009 4 次提交
    • J
      ext3: Support for vfsv1 quota format · 1aeec434
      Jan Kara 提交于
      We just have to add proper mount options handling. The rest is handled by
      the generic quota code.
      
      CC: linux-ext4@vger.kernel.org
      Signed-off-by: NJan Kara <jack@suse.cz>
      1aeec434
    • A
      ext3: Unify log messages in ext3 · 4cf46b67
      Alexey Fisher 提交于
      Make messages produced by ext3 more unified. It should be
      easy to parse.
      
      dmesg before patch:
      [ 4893.684892] reservations ON
      [ 4893.684896] xip option not supported
      [ 4893.684964] EXT3-fs warning: maximal mount count reached, running
      e2fsck is recommended
      
      dmesg after patch:
      [  873.300792] EXT3-fs (loop0): using internal journaln
      [  873.300796] EXT3-fs (loop0): mounted filesystem with writeback data mode
      [  924.163657] EXT3-fs (loop0): error: can't find ext3 filesystem on dev loop0.
      [  723.755642] EXT3-fs (loop0): error: bad blocksize 8192
      [  357.874687] EXT3-fs (loop0): error: no journal found. mounting ext3 over ext2?
      [  873.300764] EXT3-fs (loop0): warning: maximal mount count reached, running e2fsck is recommended
      [  924.163657] EXT3-fs (loop0): error: can't find ext3 filesystem on dev loop0.
      Signed-off-by: NAlexey Fisher <bug-track@fisher-privat.net>
      Signed-off-by: NJan Kara <jack@suse.cz>
      4cf46b67
    • E
      ext3: make "norecovery" an alias for "noload" · dee1d3b6
      Eric Sandeen 提交于
      Users on the list recently complained about differences across
      filesystems w.r.t. how to mount without a journal replay.
      
      In the discussion it was noted that xfs's "norecovery" option is
      perhaps more descriptively accurate than "noload," so let's make
      that an alias for ext3.
      
      Also show this status in /proc/mounts
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: NJan Kara <jack@suse.cz>
      dee1d3b6
    • E
      ext3: Don't update the superblock in ext3_statfs() · b9183975
      Eric Sandeen 提交于
      commit a71ce8c6 updated ext3_statfs()
      to update the on-disk superblock counters, but modified this buffer
      directly without any journaling of the change.  This is one of the
      accesses that was causing the crc errors in journal replay as seen in
      kernel.org bugzilla #14354.
      
      The modifications were originally to keep the sb "more" in sync,
      so that a readonly fsck of the device didn't flag this as an
      error (as often), but apparently e2fsprogs deals with this differently
      now, anyway.
      
      Based on Ted's patch for ext4, which was in turn based on my
      work on that bug and another preliminary patch...
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: NJan Kara <jack@suse.cz>
      b9183975
  4. 11 11月, 2009 1 次提交
  5. 13 10月, 2009 1 次提交
  6. 22 9月, 2009 2 次提交
  7. 24 8月, 2009 1 次提交
    • J
      ext3: Improve error message that changing journaling mode on remount is not possible · 3c4cec65
      Jan Kara 提交于
      This patch makes the error message about changing journaling mode on remount
      more descriptive. Some people are going to hit this error now due to commit
      bbae8bcc if they configure a kernel to default
      to data=writeback mode. The problem happens if they have data=ordered set for
      the root filesystem in /etc/fstab but not in the kernel command line (and they
      don't use initrd). Their filesystem then gets mounted as data=writeback by
      kernel but then their boot fails because init scripts won't be able to remount
      the filesystem rw. Better error message will hopefully make it easier for them
      to find the error in their setup and bother us less with error reports :).
      Signed-off-by: NJan Kara <jack@suse.cz>
      3c4cec65
  8. 24 6月, 2009 1 次提交
  9. 19 6月, 2009 1 次提交
  10. 12 6月, 2009 4 次提交
  11. 23 5月, 2009 1 次提交
  12. 18 5月, 2009 1 次提交
  13. 07 4月, 2009 1 次提交
  14. 26 3月, 2009 2 次提交
  15. 12 2月, 2009 1 次提交
  16. 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
  17. 09 1月, 2009 1 次提交
  18. 06 1月, 2009 3 次提交
  19. 13 11月, 2008 1 次提交
  20. 07 11月, 2008 1 次提交
    • A
      ext3: wait on all pending commits in ext3_sync_fs · c87591b7
      Arthur Jones 提交于
      In ext3_sync_fs, we only wait for a commit to finish if we started it, but
      there may be one already in progress which will not be synced.
      
      In the case of a data=ordered umount with pending long symlinks which are
      delayed due to a long list of other I/O on the backing block device, this
      causes the buffer associated with the long symlinks to not be moved to the
      inode dirty list in the second phase of fsync_super.  Then, before they
      can be dirtied again, kjournald exits, seeing the UMOUNT flag and the
      dirty pages are never written to the backing block device, causing long
      symlink corruption and exposing new or previously freed block data to
      userspace.
      
      This can be reproduced with a script created
      by Eric Sandeen <sandeen@redhat.com>:
      
      	#!/bin/bash
      
      	umount /mnt/test2
      	mount /dev/sdb4 /mnt/test2
      	rm -f /mnt/test2/*
      	dd if=/dev/zero of=/mnt/test2/bigfile bs=1M count=512
      	touch
      	/mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename
      	ln -s
      	/mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename
      	/mnt/test2/link
      	umount /mnt/test2
      	mount /dev/sdb4 /mnt/test2
      	ls /mnt/test2/
      	umount /mnt/test2
      
      To ensure all commits are synced, we flush all journal commits now when
      sync_fs'ing ext3.
      Signed-off-by: NArthur Jones <ajones@riverbed.com>
      Cc: Eric Sandeen <sandeen@redhat.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Cc: <linux-ext4@vger.kernel.org>
      Cc: <stable@kernel.org>		[2.6.everything]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c87591b7
  21. 29 10月, 2008 1 次提交
    • T
      ext3: Add support for non-native signed/unsigned htree hash algorithms · 5e1f8c9e
      Theodore Ts'o 提交于
      The original ext3 hash algorithms assumed that variables of type char
      were signed, as God and K&R intended.  Unfortunately, this assumption
      is not true on some architectures.  Userspace support for marking
      filesystems with non-native signed/unsigned chars was added two years
      ago, but the kernel-side support was never added (until now).
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      Cc: akpm@linux-foundation.org
      Cc: linux-kernel@vger.kernel.org
      5e1f8c9e
  22. 28 10月, 2008 1 次提交