22 Oct, 2010

1 commit

  • All uses of the BKL in qnx4 were the result of a pushdown into
    code that doesn't really need it. As Christoph points out, this
    is a read-only file system, which eliminates most of the races in
    readdir/lookup.

    Signed-off-by: Arnd Bergmann
    Acked-by: Anders Larsen
    Cc: Christoph Hellwig

    Arnd Bergmann
     

28 May, 2010

2 commits

  • We don't name our generic fsync implementations very well currently.
    The no-op implementation for in-memory filesystems currently is called
    simple_sync_file which doesn't make too much sense to start with,
    the the generic one for simple filesystems is called simple_fsync
    which can lead to some confusion.

    This patch renames the generic file fsync method to generic_file_fsync
    to match the other generic_file_* routines it is supposed to be used
    with, and the no-op implementation to noop_fsync to make it obvious
    what to expect. In addition add some documentation for both methods.

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

    Christoph Hellwig
     
  • Do not use the fallback default_llseek() if the readdir operation of the
    filesystem still uses the big kernel lock.

    Since llseek() modifies
    file->f_pos of the directory directly it may need locking to not confuse
    readdir which usually uses file->f_pos directly as well

    Since the special characteristics of the BKL (unlocked on schedule) are
    not necessary in this case, the inode mutex can be used for locking as
    provided by generic_file_llseek(). This is only possible since all
    filesystems, except reiserfs, either use a directory as a flat file or
    with disk address offsets. Reiserfs on the other hand uses a 32bit hash
    off the filename as the offset so generic_file_llseek() can get used as
    well since the hash is always smaller than sb->s_maxbytes (= (512 << 32) -
    blocksize).

    Signed-off-by: Jan Blunck
    Acked-by: Jan Kara
    Acked-by: Anders Larsen
    Cc: Frederic Weisbecker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    jan Blunck
     

09 Nov, 2009

1 commit


23 Sep, 2009

1 commit

  • qnx4 wrte support has never been fully implement, is broken since the dawn
    of time and hasn't been actively developed since before git history
    started.

    Instead of letting it further bitrot and complicate API transition (like
    the new truncate code) remove it.

    Signed-off-by: Christoph Hellwig
    Cc: Anders Larsen
    Cc: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

12 Jun, 2009

2 commits

  • fs-internal parts of qnx4_fs.h taken to fs/qnx4/qnx4.h, includes adjusted,
    qnx4_fs.h doesn't need unifdef anymore.

    Signed-off-by: Al Viro

    Al Viro
     
  • * have directory operations use mark_buffer_dirty_inode(),
    so that sync_mapping_buffers() would get those.
    * make qnx4_write_inode() honour its last argument.
    * get rid of insane copies of very ancient "walk the indirect blocks"
    in qnx4/fsync - they never matched the actual fs layout and, fortunately,
    never'd been called. Again, all this junk is not needed; ->fsync()
    should just do sync_mapping_buffers + sync_inode (and if we implement
    block allocation for qnx4, we'll need to use mark_buffer_dirty_inode()
    for extent blocks)

    Signed-off-by: Al Viro

    Al Viro
     

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
     

09 Dec, 2006

1 commit


01 Jul, 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
     

25 Jun, 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