1. 12 4月, 2015 1 次提交
  2. 05 2月, 2015 1 次提交
    • T
      vfs: add support for a lazytime mount option · 0ae45f63
      Theodore Ts'o 提交于
      Add a new mount option which enables a new "lazytime" mode.  This mode
      causes atime, mtime, and ctime updates to only be made to the
      in-memory version of the inode.  The on-disk times will only get
      updated when (a) if the inode needs to be updated for some non-time
      related change, (b) if userspace calls fsync(), syncfs() or sync(), or
      (c) just before an undeleted inode is evicted from memory.
      
      This is OK according to POSIX because there are no guarantees after a
      crash unless userspace explicitly requests via a fsync(2) call.
      
      For workloads which feature a large number of random write to a
      preallocated file, the lazytime mount option significantly reduces
      writes to the inode table.  The repeated 4k writes to a single block
      will result in undesirable stress on flash devices and SMR disk
      drives.  Even on conventional HDD's, the repeated writes to the inode
      table block will trigger Adjacent Track Interference (ATI) remediation
      latencies, which very negatively impact long tail latencies --- which
      is a very big deal for web serving tiers (for example).
      
      Google-Bug-Id: 18297052
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      0ae45f63
  3. 12 6月, 2014 1 次提交
    • A
      ->splice_write() via ->write_iter() · 8d020765
      Al Viro 提交于
      iter_file_splice_write() - a ->splice_write() instance that gathers the
      pipe buffers, builds a bio_vec-based iov_iter covering those and feeds
      it to ->write_iter().  A bunch of simple cases coverted to that...
      
      [AV: fixed the braino spotted by Cyrill]
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      8d020765
  4. 07 5月, 2014 2 次提交
  5. 26 1月, 2014 1 次提交
  6. 21 12月, 2012 1 次提交
  7. 21 9月, 2012 1 次提交
  8. 26 7月, 2011 1 次提交
  9. 21 7月, 2011 2 次提交
  10. 20 6月, 2011 1 次提交
    • D
      JFS: Don't save agno in the inode · d31b53e3
      Dave Kleikamp 提交于
      Resizing the file system can result in an in-memory inode being remapped
      to a different aggregate group (AG). A cached AG number can cause
      problems when trying to free or allocate inodes. Instead, save the IAG's
      agstart address and calculate the agno when we need it.
      Signed-off-by: NDave Kleikamp <dave.kleikamp@oracle.com>
      d31b53e3
  11. 10 8月, 2010 1 次提交
    • C
      remove inode_setattr · 1025774c
      Christoph Hellwig 提交于
      Replace inode_setattr with opencoded variants of it in all callers.  This
      moves the remaining call to vmtruncate into the filesystem methods where it
      can be replaced with the proper truncate sequence.
      
      In a few cases it was obvious that we would never end up calling vmtruncate
      so it was left out in the opencoded variant:
      
       spufs: explicitly checks for ATTR_SIZE earlier
       btrfs,hugetlbfs,logfs,dlmfs: explicitly clears ATTR_SIZE earlier
       ufs: contains an opencoded simple_seattr + truncate that sets the filesize just above
      
      In addition to that ncpfs called inode_setattr with handcrafted iattrs,
      which allowed to trim down the opencoded variant.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      1025774c
  12. 28 5月, 2010 1 次提交
  13. 22 5月, 2010 1 次提交
  14. 05 3月, 2010 4 次提交
    • C
      dquot: cleanup dquot initialize routine · 871a2931
      Christoph Hellwig 提交于
      Get rid of the initialize 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_initialize helper to __dquot_initialize
      and vfs_dq_init to dquot_initialize to have a consistent namespace.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJan Kara <jack@suse.cz>
      871a2931
    • C
      dquot: move dquot initialization responsibility into the filesystem · 907f4554
      Christoph Hellwig 提交于
      Currently various places in the VFS call vfs_dq_init directly.  This means
      we tie the quota code into the VFS.  Get rid of that and make the
      filesystem responsible for the initialization.   For most metadata operations
      this is a straight forward move into the methods, but for truncate and
      open it's a bit more complicated.
      
      For truncate we currently only call vfs_dq_init for the sys_truncate case
      because open already takes care of it for ftruncate and open(O_TRUNC) - the
      new code causes an additional vfs_dq_init for those which is harmless.
      
      For open the initialization is moved from do_filp_open into the open method,
      which means it happens slightly earlier now, and only for regular files.
      The latter is fine because we don't need to initialize it for operations
      on special files, and we already do it as part of the namespace operations
      for directories.
      
      Add a dquot_file_open helper that filesystems that support generic quotas
      can use to fill in ->open.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJan Kara <jack@suse.cz>
      907f4554
    • 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: move dquot transfer responsibility into the filesystem · 759bfee6
      Christoph Hellwig 提交于
      Currently notify_change calls vfs_dq_transfer directly.  This means
      we tie the quota code into the VFS.  Get rid of that and make the
      filesystem responsible for the transfer.  Most filesystems already
      do this, only ufs and udf need the code added, and for jfs it needs to
      be enabled unconditionally instead of only when ACLs are enabled.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJan Kara <jack@suse.cz>
      759bfee6
  15. 09 9月, 2009 1 次提交
  16. 08 2月, 2008 2 次提交
  17. 10 7月, 2007 1 次提交
  18. 13 2月, 2007 1 次提交
  19. 31 10月, 2006 1 次提交
  20. 02 10月, 2006 1 次提交
  21. 01 10月, 2006 2 次提交
  22. 29 3月, 2006 1 次提交
  23. 09 2月, 2006 1 次提交
    • H
      JFS: ext2 inode attributes for jfs · fa3241d2
      Herbert Poetzl 提交于
      ext2 inode attributes with relevance for jfs:
      
      'a' 	EXT2_APPEND_FL       -> append only
      'i' 	EXT2_IMMUTABLE_FL    -> immutable file
      's' 	EXT2_SECRM_FL	     -> zero file
      'u' 	EXT2_UNRM_FL	     -> allow for unrm
      'A' 	EXT2_NOATIME_FL      -> no access time
      'D' 	EXT2_DIRSYNC_FL      -> dirsync
      'S' 	EXT2_SYNC_FL	     -> sync
      
      overview of jfs flags (partially for OS/2)
      
      value	   (OS/2)	Linux	ext2 attrs
      ------------------------------------------------
      0x00010000 IFJOURNAL	-
      0x00020000 ISPARSE  	used
      0x00040000 INLINEEA 	used
      0x00080000 -	    	-	JFS_NOATIME_FL
      
      0x00100000 -	    	-	JFS_DIRSYNC_FL
      0x00200000 -	    	-	JFS_SYNC_FL
      0x00400000 -	    	-	JFS_SECRM_FL
      0x00800000 ISWAPFILE	-	JFS_UNRM_FL
      
      0x01000000 -	    	-	JFS_APPEND_FL
      0x02000000 IREADONLY	-	JFS_IMMUTABLE_FL
      0x04000000 IHIDDEN  	-	-
      0x08000000 ISYSTEM  	-	-
      
      0x10000000 -	    	-
      0x20000000 IDIRECTORY	used
      0x40000000 IARCHIVE 	-
      0x80000000 INEWNAME 	-
      
      the implementation is straight forward, except
      for the fact that the attributes have to be mapped
      to match with the ext2 ones to avoid a separate
      tool for manipulating them (this could be avoided
      when using a separate flag field in the on-disk
      representation, but the overhead is minimal)
      
      a special jfs_ioctl is added to allow for the new
      JFS_IOC_GETFLAGS and JFS_IOC_SETFLAGS calls.
      
      a helper function jfs_set_inode_flags() to transfer
      the flags from the on-disk version to the inode
      
      minor changes to allow flag inheritance on inode
      creation, as well as a cleanup of the on-disk
      flags (including the new ones)
      
      beforementioned helper to map between ext2 and jfs
      versions of the new flags ...
      
      the JFS_SECRM_FL and JFS_UNRM_FL are not done yet
      and I'm not 100% sure they are worth the effort,
      the rest seems to work out of the box ...
      Signed-off-by: NHerbert Poetzl <herbert@13thfloor.at>
      Signed-off-by: NDave Kleikamp <shaggy@austin.ibm.com>
      fa3241d2
  24. 05 5月, 2005 1 次提交
  25. 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