21 Jul, 2011

1 commit

  • Btrfs needs to be able to control how filemap_write_and_wait_range() is called
    in fsync to make it less of a painful operation, so push down taking i_mutex and
    the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some
    file systems can drop taking the i_mutex altogether it seems, like ext3 and
    ocfs2. For correctness sake I just pushed everything down in all cases to make
    sure that we keep the current behavior the same for everybody, and then each
    individual fs maintainer can make up their mind about what to do from there.
    Thanks,

    Acked-by: Jan Kara
    Signed-off-by: Josef Bacik
    Signed-off-by: Al Viro

    Josef Bacik
     

27 May, 2011

1 commit

  • Tell the filesystem if we just updated timestamp (I_DIRTY_SYNC) or
    anything else, so that the filesystem can track internally if it
    needs to push out a transaction for fdatasync or not.

    This is just the prototype change with no user for it yet. I plan
    to push large XFS changes for the next merge window, and getting
    this trivial infrastructure in this window would help a lot to avoid
    tree interdependencies.

    Also remove incorrect comments that ->dirty_inode can't block. That
    has been changed a long time ago, and many implementations rely on it.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     

10 Aug, 2010

1 commit


28 May, 2010

1 commit


22 Apr, 2010

1 commit


16 Apr, 2010

1 commit


06 Mar, 2010

2 commits

  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)
    quota: stop using QUOTA_OK / NO_QUOTA
    dquot: cleanup dquot initialize routine
    dquot: move dquot initialization responsibility into the filesystem
    dquot: cleanup dquot drop routine
    dquot: move dquot drop responsibility into the filesystem
    dquot: cleanup dquot transfer routine
    dquot: move dquot transfer responsibility into the filesystem
    dquot: cleanup inode allocation / freeing routines
    dquot: cleanup space allocation / freeing routines
    ext3: add writepage sanity checks
    ext3: Truncate allocated blocks if direct IO write fails to update i_size
    quota: Properly invalidate caches even for filesystems with blocksize < pagesize
    quota: generalize quota transfer interface
    quota: sb_quota state flags cleanup
    jbd: Delay discarding buffers in journal_unmap_buffer
    ext3: quota_write cross block boundary behaviour
    quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota
    quota: split out compat_sys_quotactl support from quota.c
    quota: split out netlink notification support from quota.c
    quota: remove invalid optimization from quota_sync_all
    ...

    Fixed trivial conflicts in fs/namei.c and fs/ufs/inode.c

    Linus Torvalds
     
  • This gives the filesystem more information about the writeback that
    is happening. Trond requested this for the NFS unstable write handling,
    and other filesystems might benefit from this too by beeing able to
    distinguish between the different callers in more detail.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     

05 Mar, 2010

1 commit

  • 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: Christoph Hellwig
    Signed-off-by: Jan Kara

    Christoph Hellwig
     

28 Mar, 2009

1 commit


08 Feb, 2008

3 commits

  • The ioctls were already compatible except for the actual values so this
    was fairly easy to do.

    Signed-off-by: Andi Kleen
    Signed-off-by: Dave Kleikamp

    Andi Kleen
     
  • Convert jfs_ioctl over to not use the BKL. The only potential race
    I could see was with two ioctls in parallel changing the flags
    and losing the updates. Use the i_mutex to protect against this.

    Signed-off-by: Andi Kleen
    Signed-off-by: Dave Kleikamp

    Andi Kleen
     
  • Stop the JFS filesystem from using iget() and read_inode(). Replace
    jfs_read_inode() with jfs_iget(), and call that instead of iget(). jfs_iget()
    then uses iget_locked() directly and returns a proper error code instead of an
    inode in the event of an error.

    jfs_fill_super() returns any error incurred when getting the root inode
    instead of EINVAL.

    Signed-off-by: David Howells
    Acked-by: Dave Kleikamp
    Acked-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

22 Oct, 2007

1 commit

  • Trivial switch over to the new generic helpers.

    Signed-off-by: Christoph Hellwig
    Cc: Neil Brown
    Cc: "J. Bruce Fields"
    Cc: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

18 Jul, 2007

1 commit

  • When the exportfs interface was added the expectation was that filesystems
    provide an operation to convert from a file handle to an inode/dentry, but it
    kept a backwards compat option that still calls into iget.

    Calling into iget from non-filesystem code is very bad, because it gives too
    little information to filesystem, and simply crashes if the filesystem doesn't
    implement the ->read_inode routine.

    Fortunately there are only two filesystems left using this fallback: efs and
    jfs. This patch moves a copy of export_iget to each of those to implement the
    get_dentry method.

    While this is a temporary increase of lines of code in the kernel it allows
    for a much cleaner interface and important code restructuring in later
    patches.

    [akpm@linux-foundation.org: add jfs_get_inode_flags() declaration]
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

25 Apr, 2007

1 commit

  • This mirrors Jan Kara's patches for ext3. This patch makes sure that
    changes made to inode->i_flags are reflected on disk for jfs. It also
    moves a call of jfs_set_inode_flags() to be more consistent with where
    jfs_get_inode_flags() is called.

    Signed-off-by: Dave Kleikamp

    Dave Kleikamp
     

13 Feb, 2007

1 commit

  • Many struct inode_operations in the kernel can be "const". Marking them const
    moves these to the .rodata section, which avoids false sharing with potential
    dirty data. In addition it'll catch accidental writes at compile time to
    these shared resources.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     

02 Oct, 2006

1 commit

  • Removed trailing spaces & tabs, and spaces preceding tabs.
    Also a couple very minor comment cleanups.

    Signed-off-by: Dave Kleikamp
    (cherry picked from f74156539964d7b3d5164fdf8848e6a682f75b97 commit)

    Dave Kleikamp
     

27 Jul, 2006

1 commit


29 Jun, 2006

1 commit


29 Mar, 2006

1 commit

  • This is a conversion to make the various file_operations structs in fs/
    const. Basically a regexp job, with a few manual fixups

    The goal is both to increase correctness (harder to accidentally write to
    shared datastructures) and reducing the false sharing of cachelines with
    things that get dirty in .data (while .rodata is nicely read only and thus
    cache clean)

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     

09 Feb, 2006

1 commit

  • 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: Herbert Poetzl
    Signed-off-by: Dave Kleikamp

    Herbert Poetzl
     

05 May, 2005

1 commit


17 Apr, 2005

1 commit

  • 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!

    Linus Torvalds