01 Apr, 2012

1 commit


29 Mar, 2012

1 commit

  • Pull ext3, UDF, and quota fixes from Jan Kara:
    "A couple of ext3 & UDF fixes and also one improvement in quota
    locking."

    * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
    ext3: fix start and len arguments handling in ext3_trim_fs()
    udf: Fix deadlock in udf_release_file()
    udf: Fix file entry logicalBlocksRecorded
    udf: Fix handling of i_blocks
    quota: Make quota code not call tty layer with dqptr_sem held
    udf: Init/maintain file entry checkpoint field
    ext3: Update ctime in ext3_splice_branch() only when needed
    ext3: Don't call dquot_free_block() if we don't update anything
    udf: Remove unnecessary OOM messages

    Linus Torvalds
     

21 Mar, 2012

1 commit


03 Mar, 2012

1 commit

  • The overflow might happen when passing blocknr into
    ext3_get_group_no_and_offset(), because it expects type ext3_fsblk_t
    which might be smaller than uint64_t. This will most likely happen when
    calling FITRIM with the default argument len = ULLONG_MAX.

    Fix this by using "end" variable instead of "start+len" as it is easier
    to get right and specifically check that the end is not beyond the end
    of the file system, so we are sure that the result of
    get_group_no_and_offset() will not overflow. Otherwise truncate it to
    the size of the file system.

    Signed-off-by: Lukas Czerner
    Cc: Jan Kara
    Signed-off-by: Jan Kara

    Lukas Czerner
     

01 Mar, 2012

2 commits


10 Jan, 2012

1 commit

  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
    ext2/3/4: delete unneeded includes of module.h
    ext{3,4}: Fix potential race when setversion ioctl updates inode
    udf: Mark LVID buffer as uptodate before marking it dirty
    ext3: Don't warn from writepage when readonly inode is spotted after error
    jbd: Remove j_barrier mutex
    reiserfs: Force inode evictions before umount to avoid crash
    reiserfs: Fix quota mount option parsing
    udf: Treat symlink component of type 2 as /
    udf: Fix deadlock when converting file from in-ICB one to normal one
    udf: Cleanup calling convention of inode_getblk()
    ext2: Fix error handling on inode bitmap corruption
    ext3: Fix error handling on inode bitmap corruption
    ext3: replace ll_rw_block with other functions
    ext3: NULL dereference in ext3_evict_inode()
    jbd: clear revoked flag on buffers before a new transaction started
    ext3: call ext3_mark_recovery_complete() when recovery is really needed

    Linus Torvalds
     

09 Jan, 2012

7 commits

  • Delete any instances of include module.h that were not strictly
    required. In the case of ext2, the declaration of MODULE_LICENSE
    etc. were in inode.c but the module_init/exit were in super.c, so
    relocate the MODULE_LICENCE/AUTHOR block to super.c which makes it
    consistent with ext3 and ext4 at the same time.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: Jan Kara

    Paul Gortmaker
     
  • The EXT{3,4}_IOC_SETVERSION ioctl() updates i_ctime and i_generation
    without i_mutex. This can lead to a race with the other operations that
    update i_ctime. This is not a big issue but let's make the ioctl consistent
    with how we handle e.g. other timestamp updates and use i_mutex to protect
    inode changes.

    Signed-off-by: Djalal Harouni
    Signed-off-by: Jan Kara

    Djalal Harouni
     
  • WARN_ON_ONCE(IS_RDONLY(inode)) tends to trip when filesystem hits error and is
    remounted read-only. This unnecessarily scares users (well, they should be
    scared because of filesystem error, but the stack trace distracts them from the
    right source of their fear ;-). We could as well just remove the WARN_ON but
    it's not hard to fix it to not trip on filesystem with errors and not use more
    cycles in the common case so that's what we do.

    CC: stable@kernel.org
    Signed-off-by: Jan Kara

    Jan Kara
     
  • When insert_inode_locked() fails in ext3_new_inode() it most likely
    means inode bitmap got corrupted and we allocated again inode which
    is already in use. Also doing unlock_new_inode() during error recovery
    is wrong since inode does not have I_NEW set. Fix the problem by jumping
    to fail: (instead of fail_drop:) which declares filesystem error and
    does not call unlock_new_inode().

    Reviewed-by: Eric Sandeen
    Signed-off-by: Jan Kara

    Jan Kara
     
  • ll_rw_block() is deprecated. Thus we replace it with other functions.

    CC: Jan Kara
    Signed-off-by: Zheng Liu
    Signed-off-by: Jan Kara

    Zheng Liu
     
  • Both ext3 and ext4 put the half-created symlink inode into the orphan list
    for a while (see the comment in ext[34]_symlink() for gory details). Then,
    if everything went fine, they pull it out of the orphan list and bump the
    link count back to 1. The thing is, inc_nlink() is going to complain about
    seeing somebody changing i_nlink from 0 to 1. With a good reason, since
    normally something like that is a bug. Explicit set_nlink(inode, 1) does
    the same thing as inc_nlink() here, but it does *not* complain - exactly
    because it should be usable in strange situations like this one.

    Signed-off-by: Al Viro

    Al Viro
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (53 commits)
    Kconfig: acpi: Fix typo in comment.
    misc latin1 to utf8 conversions
    devres: Fix a typo in devm_kfree comment
    btrfs: free-space-cache.c: remove extra semicolon.
    fat: Spelling s/obsolate/obsolete/g
    SCSI, pmcraid: Fix spelling error in a pmcraid_err() call
    tools/power turbostat: update fields in manpage
    mac80211: drop spelling fix
    types.h: fix comment spelling for 'architectures'
    typo fixes: aera -> area, exntension -> extension
    devices.txt: Fix typo of 'VMware'.
    sis900: Fix enum typo 'sis900_rx_bufer_status'
    decompress_bunzip2: remove invalid vi modeline
    treewide: Fix comment and string typo 'bufer'
    hyper-v: Update MAINTAINERS
    treewide: Fix typos in various parts of the kernel, and fix some comments.
    clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR
    gpio: Kconfig: drop unknown symbol 'CS5535_GPIO'
    leds: Kconfig: Fix typo 'D2NET_V2'
    sound: Kconfig: drop unknown symbol ARCH_CLPS7500
    ...

    Fix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new
    kconfig additions, close to removed commented-out old ones)

    Linus Torvalds
     

07 Jan, 2012

2 commits


04 Jan, 2012

7 commits


02 Dec, 2011

1 commit


22 Nov, 2011

1 commit

  • This is an fsfuzzer bug. ->s_journal is set at the end of
    ext3_load_journal() but we try to use it in the error handling from
    ext3_get_journal() while it's still NULL.

    [ 337.039041] BUG: unable to handle kernel NULL pointer dereference at 0000000000000024
    [ 337.040380] IP: [] _raw_spin_lock+0x9/0x30
    [ 337.041687] PGD 0
    [ 337.043118] Oops: 0002 [#1] SMP
    [ 337.044483] CPU 3
    [ 337.044495] Modules linked in: ecb md4 cifs fuse kvm_intel kvm brcmsmac brcmutil crc8 cordic r8169 [last unloaded: scsi_wait_scan]
    [ 337.047633]
    [ 337.049259] Pid: 8308, comm: mount Not tainted 3.2.0-rc2-next-20111121+ #24 SAMSUNG ELECTRONICS CO., LTD. RV411/RV511/E3511/S3511 /RV411/RV511/E3511/S3511
    [ 337.051064] RIP: 0010:[] [] _raw_spin_lock+0x9/0x30
    [ 337.052879] RSP: 0018:ffff8800b1d11ae8 EFLAGS: 00010282
    [ 337.054668] RAX: 0000000000000100 RBX: 0000000000000000 RCX: ffff8800b77c2000
    [ 337.056400] RDX: ffff8800a97b5c00 RSI: 0000000000000000 RDI: 0000000000000024
    [ 337.058099] RBP: ffff8800b1d11ae8 R08: 6000000000000000 R09: e018000000000000
    [ 337.059841] R10: ff67366cc2607c03 R11: 00000000110688e6 R12: 0000000000000000
    [ 337.061607] R13: 0000000000000000 R14: 0000000000000000 R15: ffff8800a78f06e8
    [ 337.063385] FS: 00007f9d95652800(0000) GS:ffff8800b7180000(0000) knlGS:0000000000000000
    [ 337.065110] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 337.066801] CR2: 0000000000000024 CR3: 00000000aef2c000 CR4: 00000000000006e0
    [ 337.068581] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 337.070321] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 337.072105] Process mount (pid: 8308, threadinfo ffff8800b1d10000, task ffff8800b1d02be0)
    [ 337.073800] Stack:
    [ 337.075487] ffff8800b1d11b08 ffffffff811f48cf ffff88007ac9b158 0000000000000000
    [ 337.077255] ffff8800b1d11b38 ffffffff8119405d ffff88007ac9b158 ffff88007ac9b250
    [ 337.078851] ffffffff8181bda0 ffffffff8181bda0 ffff8800b1d11b68 ffffffff81131e31
    [ 337.080284] Call Trace:
    [ 337.081706] [] log_start_commit+0x1f/0x40
    [ 337.083107] [] ext3_evict_inode+0x1fd/0x2a0
    [ 337.084490] [] evict+0xa1/0x1a0
    [ 337.085857] [] iput+0x101/0x210
    [ 337.087220] [] iget_failed+0x21/0x30
    [ 337.088581] [] ext3_iget+0x15c/0x450
    [ 337.089936] [] ? ext3_rsv_window_add+0x81/0x100
    [ 337.091284] [] ext3_get_journal+0x15/0xde
    [ 337.092641] [] ext3_fill_super+0xf2b/0x1c30
    [ 337.093991] [] ? register_shrinker+0x4d/0x60
    [ 337.095332] [] mount_bdev+0x1a2/0x1e0
    [ 337.096680] [] ? ext3_setup_super+0x210/0x210
    [ 337.098026] [] ext3_mount+0x10/0x20
    [ 337.099362] [] mount_fs+0x3e/0x1b0
    [ 337.100759] [] ? __alloc_percpu+0xb/0x10
    [ 337.102330] [] vfs_kern_mount+0x65/0xc0
    [ 337.103889] [] do_kern_mount+0x4f/0x100
    [ 337.105442] [] do_mount+0x19c/0x890
    [ 337.106989] [] ? memdup_user+0x46/0x90
    [ 337.108572] [] ? strndup_user+0x53/0x70
    [ 337.110114] [] sys_mount+0x8b/0xe0
    [ 337.111617] [] system_call_fastpath+0x16/0x1b
    [ 337.113133] Code: 38 c2 74 0f 66 0f 1f 44 00 00 f3 90 0f b6 03 38 c2 75 f7 48 83 c4 08 5b 5d c3 0f 1f 84 00 00 00 00 00 55 b8 00 01 00 00 48 89 e5 66 0f c1 07 0f b6 d4 38 c2 74 0c 0f 1f 00 f3 90 0f b6 07 38
    [ 337.116588] RIP [] _raw_spin_lock+0x9/0x30
    [ 337.118260] RSP
    [ 337.119998] CR2: 0000000000000024
    [ 337.188701] ---[ end trace c36d790becac1615 ]---

    Signed-off-by: Dan Carpenter
    Signed-off-by: Jan Kara

    Dan Carpenter
     

09 Nov, 2011

1 commit


03 Nov, 2011

2 commits

  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue:
    vfs: add d_prune dentry operation
    vfs: protect i_nlink
    filesystems: add set_nlink()
    filesystems: add missing nlink wrappers
    logfs: remove unnecessary nlink setting
    ocfs2: remove unnecessary nlink setting
    jfs: remove unnecessary nlink setting
    hypfs: remove unnecessary nlink setting
    vfs: ignore error on forced remount
    readlinkat: ensure we return ENOENT for the empty pathname for normal lookups
    vfs: fix dentry leak in simple_fill_super()

    Linus Torvalds
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
    udf: Cleanup metadata flags handling
    udf: Skip mirror metadata FE loading when metadata FE is ok
    ext3: Allow quota file use root reservation
    udf: Remove web reference from UDF MAINTAINERS entry
    quota: Drop path reference on error exit from quotactl
    udf: Neaten udf_debug uses
    udf: Neaten logging output, use vsprintf extension %pV
    udf: Convert printks to pr_
    udf: Rename udf_warning to udf_warn
    udf: Rename udf_error to udf_err
    udf: Promote some debugging messages to udf_error
    ext3: Remove the obsolete broken EXT3_IOC32_WAIT_FOR_READONLY.
    udf: Add readpages support for udf.
    ext3/balloc.c: local functions should be static
    ext2: fix the outdated comment in ext2_nfs_get_inode()
    ext3: remove deprecated oldalloc
    fs/ext3/balloc.c: delete useless initialization
    fs/ext2/balloc.c: delete useless initialization
    ext3: fix message in ext3_remount for rw-remount case
    ext3: Remove i_mutex from ext3_sync_file()

    Fix up trivial (printf format cleanup) conflicts in fs/udf/udfdecl.h

    Linus Torvalds
     

02 Nov, 2011

2 commits


01 Nov, 2011

1 commit


25 Oct, 2011

1 commit

  • * 'next' of git://selinuxproject.org/~jmorris/linux-security: (95 commits)
    TOMOYO: Fix incomplete read after seek.
    Smack: allow to access /smack/access as normal user
    TOMOYO: Fix unused kernel config option.
    Smack: fix: invalid length set for the result of /smack/access
    Smack: compilation fix
    Smack: fix for /smack/access output, use string instead of byte
    Smack: domain transition protections (v3)
    Smack: Provide information for UDS getsockopt(SO_PEERCRED)
    Smack: Clean up comments
    Smack: Repair processing of fcntl
    Smack: Rule list lookup performance
    Smack: check permissions from user space (v2)
    TOMOYO: Fix quota and garbage collector.
    TOMOYO: Remove redundant tasklist_lock.
    TOMOYO: Fix domain transition failure warning.
    TOMOYO: Remove tomoyo_policy_memory_lock spinlock.
    TOMOYO: Simplify garbage collector.
    TOMOYO: Fix make namespacecheck warnings.
    target: check hex2bin result
    encrypted-keys: check hex2bin result
    ...

    Linus Torvalds
     

11 Oct, 2011

1 commit


05 Oct, 2011

1 commit


23 Aug, 2011

2 commits


17 Aug, 2011

4 commits

  • For a long time now orlov is the default block allocator in the ext3. It
    performs better than the old one and no one seems to claim otherwise so
    we can safely drop it and make oldalloc and orlov mount option
    deprecated.

    Signed-off-by: Lukas Czerner
    Signed-off-by: Jan Kara

    Lukas Czerner
     
  • Delete nontrivial initialization that is immediately overwritten by the
    result of an allocation function.

    The semantic match that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @@
    type T;
    identifier i;
    expression e;
    @@

    (
    T i = \(0\|NULL\|ERR_PTR(...)\);
    |
    -T i = e;
    +T i;
    )
    ... when != i
    i = \(kzalloc\|kcalloc\|kmalloc\)(...);

    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Jan Kara

    Julia Lawall
     
  • If there are some inodes in orphan list while a filesystem is being
    read-only mounted, we should recommend that peole umount and then
    mount it when they try to remount with read-write. But the current
    message and comment recommend that they umount and then remount it
    which may be slightly misleading.

    Signed-off-by: Toshiyuki Okajima
    Signed-off-by: Jan Kara

    Toshiyuki Okajima
     
  • ext3_sync_file() does not need i_mutex for anything so just drop it.

    Signed-off-by: Jan Kara

    Jan Kara