27 May, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (25 commits)
    cifs: remove unnecessary dentry_unhash on rmdir/rename_dir
    ocfs2: remove unnecessary dentry_unhash on rmdir/rename_dir
    exofs: remove unnecessary dentry_unhash on rmdir/rename_dir
    nfs: remove unnecessary dentry_unhash on rmdir/rename_dir
    ext2: remove unnecessary dentry_unhash on rmdir/rename_dir
    ext3: remove unnecessary dentry_unhash on rmdir/rename_dir
    ext4: remove unnecessary dentry_unhash on rmdir/rename_dir
    btrfs: remove unnecessary dentry_unhash in rmdir/rename_dir
    ceph: remove unnecessary dentry_unhash calls
    vfs: clean up vfs_rename_other
    vfs: clean up vfs_rename_dir
    vfs: clean up vfs_rmdir
    vfs: fix vfs_rename_dir for FS_RENAME_DOES_D_MOVE filesystems
    libfs: drop unneeded dentry_unhash
    vfs: update dentry_unhash() comment
    vfs: push dentry_unhash on rename_dir into file systems
    vfs: push dentry_unhash on rmdir into file systems
    vfs: remove dget() from dentry_unhash()
    vfs: dentry_unhash immediately prior to rmdir
    vfs: Block mmapped writes while the fs is frozen
    ...

    Linus Torvalds
     

26 May, 2011

2 commits


10 May, 2011

14 commits


06 Apr, 2011

1 commit

  • With the ->sync_page() hook gone, we have a few users that
    add their own static address_space_operations without any
    functions defined.

    fs/inode.c already has an empty_aops that it uses for init
    purposes. Lets export that and use it in the places where
    an otherwise empty aops was defined.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

30 Mar, 2011

3 commits

  • Fixes whitespace coding style issues.

    Signed-off-by: Nicolas Kaiser
    Signed-off-by: Ryusuke Konishi

    Nicolas Kaiser
     
  • Nilfs in 2.6.39-rc1 hit the following oops:

    BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
    IP: [] try_to_release_page+0x2a/0x3d
    PGD 234cb6067 PUD 234c72067 PMD 0
    Oops: 0000 [#1] SMP

    Process truncate (pid: 10995, threadinfo ffff8802353c2000, task ffff880234cfa000)
    Stack:
    ffff8802333c77b8 ffffffff810b64b0 0000000000003802 ffffffffa0052cca
    0000000000000000 ffff8802353c3b58 0000000000000000 ffff8802353c3b58
    0000000000000001 0000000000000000 ffffea0007b92308 ffffea0007b92308
    Call Trace:
    [] ? invalidate_inode_pages2_range+0x15f/0x273
    [] ? nilfs_palloc_get_block+0x2d/0xaf [nilfs2]
    [] ? bit_waitqueue+0x14/0xa1
    [] ? wake_up_bit+0x10/0x20
    [] ? nilfs_forget_buffer+0x66/0x7a [nilfs2]
    [] ? nilfs_btree_concat_left+0x5c/0x77 [nilfs2]
    [] ? nilfs_btree_delete+0x395/0x3cf [nilfs2]
    [] ? nilfs_bmap_do_delete+0x6e/0x79 [nilfs2]
    [] ? nilfs_btree_last_key+0x14b/0x15e [nilfs2]
    [] ? nilfs_bmap_truncate+0x2f/0x83 [nilfs2]
    [] ? nilfs_bmap_last_key+0x35/0x62 [nilfs2]
    [] ? nilfs_truncate_bmap+0x6b/0xc7 [nilfs2]
    [] ? nilfs_truncate+0x79/0xe4 [nilfs2]
    [] ? vmtruncate+0x33/0x3b
    [] ? nilfs_setattr+0x4d/0x8c [nilfs2]
    [] ? do_page_fault+0x31b/0x356
    [] ? notify_change+0x17d/0x262
    [] ? do_truncate+0x65/0x80
    [] ? sys_ftruncate+0xf1/0xf6
    [] ? system_call_fastpath+0x16/0x1b
    Code: c3 48 83 ec 08 48 8b 17 48 8b 47 18 80 e2 01 75 04 0f 0b eb fe 48 8b 17 80 e6 20 74 05 31 c0 41 59 c3 48 85 c0 74 11 48 8b 40 58
    8b 40 48 48 85 c0 74 04 41 58 ff e0 59 e9 b1 b5 05 00 41 54
    RIP [] try_to_release_page+0x2a/0x3d
    RSP
    CR2: 0000000000000048

    This oops was brought in by the change "block: remove per-queue
    plugging" (commit: 7eaceaccab5f40bb). It initializes mapping->a_ops
    with a NULL pointer for some pages in nilfs (e.g. btree node pages),
    but mm code doesn't NULL pointer checks against mapping->a_ops. (the
    check is done for each callback function)

    This corrects the aops initialization and fixes the oops.

    Signed-off-by: Ryusuke Konishi
    Acked-by: Jens Axboe

    Ryusuke Konishi
     
  • From the result of a function test of mmap, mmap write to shared pages
    turned out to be broken for hole blocks. It doesn't write out filled
    blocks and the data will be lost after umount. This is due to a bug
    that the target file is not queued for log writer when filling hole
    blocks.

    Also, nilfs_page_mkwrite function exits normal code path even after
    successfully filled hole blocks due to a change of block_page_mkwrite
    function; just after nilfs was merged into the mainline,
    block_page_mkwrite() started to return VM_FAULT_LOCKED instead of zero
    by the patch "mm: close page_mkwrite races" (commit:
    b827e496c893de0c). The current nilfs_page_mkwrite() is not handling
    this value properly.

    This corrects nilfs_page_mkwrite() and will resolve the data loss
    problem in mmap write.

    [This should be applied to every kernel since 2.6.30 but a fix is
    needed for 2.6.37 and prior kernels]

    Signed-off-by: Ryusuke Konishi
    Tested-by: Ryusuke Konishi
    Cc: stable [2.6.38]

    Ryusuke Konishi
     

25 Mar, 2011

1 commit

  • * 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block: (65 commits)
    Documentation/iostats.txt: bit-size reference etc.
    cfq-iosched: removing unnecessary think time checking
    cfq-iosched: Don't clear queue stats when preempt.
    blk-throttle: Reset group slice when limits are changed
    blk-cgroup: Only give unaccounted_time under debug
    cfq-iosched: Don't set active queue in preempt
    block: fix non-atomic access to genhd inflight structures
    block: attempt to merge with existing requests on plug flush
    block: NULL dereference on error path in __blkdev_get()
    cfq-iosched: Don't update group weights when on service tree
    fs: assign sb->s_bdi to default_backing_dev_info if the bdi is going away
    block: Require subsystems to explicitly allocate bio_set integrity mempool
    jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging
    jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging
    fs: make fsync_buffers_list() plug
    mm: make generic_writepages() use plugging
    blk-cgroup: Add unaccounted time to timeslice_used.
    block: fixup plugging stubs for !CONFIG_BLOCK
    block: remove obsolete comments for blkdev_issue_zeroout.
    blktrace: Use rq->cmd_flags directly in blk_add_trace_rq.
    ...

    Fix up conflicts in fs/{aio.c,super.c}

    Linus Torvalds
     

24 Mar, 2011

2 commits

  • And give it a kernel-doc comment.

    [akpm@linux-foundation.org: btrfs changed in linux-next]
    Signed-off-by: Serge E. Hallyn
    Cc: "Eric W. Biederman"
    Cc: Daniel Lezcano
    Acked-by: David Howells
    Cc: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     
  • As a preparation for removing ext2 non-atomic bit operations from
    asm/bitops.h. This converts ext2 non-atomic bit operations to
    little-endian bit operations.

    Signed-off-by: Akinobu Mita
    Acked-by: Ryusuke Konishi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

10 Mar, 2011

3 commits


09 Mar, 2011

8 commits


08 Mar, 2011

5 commits

  • This records the number of used blocks per checkpoint in each
    checkpoint entry of cpfile. Even though userland tools can get the
    block count via nilfs_get_cpinfo ioctl, it was not updated by the
    nilfs2 kernel code. This fixes the issue and makes it available for
    userland tools to calculate used amount per checkpoint.

    Signed-off-by: Ryusuke Konishi
    Cc: Jiro SEKIBA

    Ryusuke Konishi
     
  • This is a similar change to those in ext2/ext3 codebase (commit
    40a063f6691ce937 and a4ae3094869f18e2, respectively).

    The addition of 64k block capability in the rec_len_from_disk and
    rec_len_to_disk functions added a bit of math overhead which slows
    down file create workloads needlessly when the architecture cannot
    even support 64k blocks. This will cut the corner.

    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     
  • At present, the same warning message can be output twice when nilfs
    detected a problem on super blocks:

    NILFS warning: broken superblock. using spare superblock.
    NILFS warning: broken superblock. using spare superblock.
    ...

    This is because these super blocks are reloaded with the block size
    written in a super block if it differs from the first block size, but
    this repetition looks somewhat confusing. So, we hint at what is
    going on by appending block size information to those messages.

    Reported-by: Wakko Warner
    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     
  • The current FS_IOC_GETFLAGS/SETFLAGS/GETVERSION will fail if
    application is 32 bit and kernel is 64 bit.

    This issue is avoidable by adding compat_ioctl method.

    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     
  • Add support for the standard attributes set via chattr and read via
    lsattr. These attributes are already in the flags value in the nilfs2
    inode, but currently we don't have any ioctl commands that expose them
    to the userland.

    Collaterally, this adds the FS_IOC_GETVERSION ioctl for getting
    i_generation, which allows users to list the file's generation number
    with "lsattr -v".

    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi