31 May, 2010

2 commits


28 May, 2010

1 commit


22 May, 2010

3 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (69 commits)
    fix handling of offsets in cris eeprom.c, get rid of fake on-stack files
    get rid of home-grown mutex in cris eeprom.c
    switch ecryptfs_write() to struct inode *, kill on-stack fake files
    switch ecryptfs_get_locked_page() to struct inode *
    simplify access to ecryptfs inodes in ->readpage() and friends
    AFS: Don't put struct file on the stack
    Ban ecryptfs over ecryptfs
    logfs: replace inode uid,gid,mode initialization with helper function
    ufs: replace inode uid,gid,mode initialization with helper function
    udf: replace inode uid,gid,mode init with helper
    ubifs: replace inode uid,gid,mode initialization with helper function
    sysv: replace inode uid,gid,mode initialization with helper function
    reiserfs: replace inode uid,gid,mode initialization with helper function
    ramfs: replace inode uid,gid,mode initialization with helper function
    omfs: replace inode uid,gid,mode initialization with helper function
    bfs: replace inode uid,gid,mode initialization with helper function
    ocfs2: replace inode uid,gid,mode initialization with helper function
    nilfs2: replace inode uid,gid,mode initialization with helper function
    minix: replace inode uid,gid,mode init with helper
    ext4: replace inode uid,gid,mode init with helper
    ...

    Trivial conflict in fs/fs-writeback.c (mark bitfields unsigned)

    Linus Torvalds
     
  • Acked-by: Ryusuke Konishi
    Signed-off-by: Dmitry Monakhov
    Signed-off-by: Al Viro

    Dmitry Monakhov
     
  • Conflicts:
    fs/ext3/fsync.c

    Signed-off-by: Jens Axboe

    Jens Axboe
     

10 May, 2010

20 commits


03 May, 2010

1 commit

  • As of 32a88aa1, __sync_filesystem() will return 0 if s_bdi is not set.
    And nilfs does not set s_bdi anywhere. I noticed this problem by the
    warning introduced by the recent commit 5129a469 ("Catch filesystem
    lacking s_bdi").

    WARNING: at fs/super.c:959 vfs_kern_mount+0xc5/0x14e()
    Hardware name: PowerEdge 2850
    Modules linked in: nilfs2 loop tpm_tis tpm tpm_bios video shpchp pci_hotplug output dcdbas
    Pid: 3773, comm: mount.nilfs2 Not tainted 2.6.34-rc6-debug #38
    Call Trace:
    [] warn_slowpath_common+0x60/0x90
    [] warn_slowpath_null+0xd/0x10
    [] vfs_kern_mount+0xc5/0x14e
    [] do_kern_mount+0x32/0xbd
    [] do_mount+0x671/0x6d0
    [] ? __get_free_pages+0x1f/0x21
    [] ? copy_mount_options+0x2b/0xe2
    [] ? strndup_user+0x48/0x67
    [] sys_mount+0x61/0x8f
    [] sysenter_do_call+0x12/0x32

    This ensures to set s_bdi for nilfs and fixes the sync silent failure.

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

    Ryusuke Konishi
     

29 Apr, 2010

1 commit

  • After merging the block tree, today's linux-next build (powerpc ppc64_defconfig)
    failed like this:

    fs/nilfs2/the_nilfs.c: In function 'nilfs_discard_segments':
    fs/nilfs2/the_nilfs.c:673: error: 'DISCARD_FL_BARRIER' undeclared (first use in this function)

    Caused by commit fbd9b09a177a481eda256447c881f014f29034fe ("blkdev:
    generalize flags for blkdev_issue_fn functions") interacting with commit
    e902ec9906e844f4613fa6190c6fa65f162dc86e ("nilfs2: issue discard request
    after cleaning segments") (which netered Linus' tree on about March 4 -
    before v2.6.34-rc1).

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Jens Axboe

    Stephen Rothwell
     

13 Apr, 2010

1 commit


12 Apr, 2010

1 commit


02 Apr, 2010

1 commit

  • `make CONFIG_NILFS2_FS=m M=fs/nilfs2/` will give the following warnings:

    fs/nilfs2/btree.c: In function 'nilfs_btree_propagate':
    fs/nilfs2/btree.c:1882: warning: 'maxlevel' may be used uninitialized in this function
    fs/nilfs2/btree.c:1882: note: 'maxlevel' was declared here

    Set maxlevel = 0 to fix it.

    Signed-off-by: Li Hong
    Signed-off-by: Ryusuke Konishi

    Li Hong
     

31 Mar, 2010

1 commit


30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

24 Mar, 2010

1 commit

  • nilfs_wait_on_logs has a potential to slip out before completion of
    all bio requests when it met an error. This synchronization fault may
    cause unexpected results, for instance, violative access to freed
    segment buffers from an end-bio callback routine.

    This fixes the issue by ensuring that nilfs_wait_on_logs waits all
    given logs.

    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     

23 Mar, 2010

1 commit

  • According to the report from Andreas Beckmann (Message-ID:
    ), nilfs in 2.6.33 kernel got stuck
    after a disk full error.

    This turned out to be a regression by log writer updates merged at
    kernel 2.6.33. nilfs_segctor_abort_construction, which is a cleanup
    function for erroneous cases, was skipping writeback completion for
    some logs.

    This fixes the bug and would resolve the hang issue.

    Reported-by: Andreas Beckmann
    Signed-off-by: Ryusuke Konishi
    Tested-by: Ryusuke Konishi
    Cc: stable [2.6.33.x]

    Ryusuke Konishi
     

22 Mar, 2010

1 commit

  • Andreas Beckmann gave me a report that nilfs logged the following
    warnings when it got a disk full:

    nilfs_sufile_do_cancel_free: segment 0 must be clean
    nilfs_sufile_do_cancel_free: segment 1 must be clean

    These arise from a duplicate call to nilfs_segctor_cancel_freev in an
    error path of log writer. This will fix the issue.

    Reported-by: Andreas Beckmann
    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     

14 Mar, 2010

4 commits