firefly-linux-kernel-4.4.55.git
14 years agoext3: Truncate allocated blocks if direct IO write fails to update i_size
Jan Kara [Mon, 1 Mar 2010 13:02:37 +0000 (14:02 +0100)]
ext3: Truncate allocated blocks if direct IO write fails to update i_size

We have to truncate blocks allocated to file during direct IO when we
fail to update i_size properly.

Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: Properly invalidate caches even for filesystems with blocksize < pagesize
Jan Kara [Mon, 22 Feb 2010 20:07:17 +0000 (21:07 +0100)]
quota: Properly invalidate caches even for filesystems with blocksize < pagesize

Sometimes invalidate_bdev() can fail to invalidate a part of block
device cache because of dirty data. If the filesystem has blocksize
smaller than page size, this can happen even for pages containing
quota files and thus kernel would operate on stale data. Fix the
issue by syncing the filesystem before invalidating the cache.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: generalize quota transfer interface
Dmitry Monakhov [Tue, 16 Feb 2010 05:31:50 +0000 (08:31 +0300)]
quota: generalize quota transfer interface

Current quota transfer interface support only uid/gid.
This patch extend interface in order to support various quotas types
The goal is accomplished without changes in most frequently used
vfs_dq_transfer() func.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: sb_quota state flags cleanup
Dmitry Monakhov [Tue, 16 Feb 2010 05:31:49 +0000 (08:31 +0300)]
quota: sb_quota state flags cleanup

- remove hardcoded USRQUOTA/GRPQUOTA flags
- convert int to bool for appropriate functions

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agojbd: Delay discarding buffers in journal_unmap_buffer
Jan Kara [Tue, 16 Feb 2010 19:37:12 +0000 (20:37 +0100)]
jbd: Delay discarding buffers in journal_unmap_buffer

Delay discarding buffers in journal_unmap_buffer until
we know that "add to orphan" operation has definitely been
committed, otherwise the log space of committing transation
may be freed and reused before truncate get committed, updates
may get lost if crash happens.

This patch is a backport of JBD2 fix by dingdinghua <dingdinghua@nrchpc.ac.cn>.

Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoext3: quota_write cross block boundary behaviour
Dmitry Monakhov [Tue, 16 Feb 2010 16:33:42 +0000 (19:33 +0300)]
ext3: quota_write cross block boundary behaviour

We always assume what dquot update result in changes in one data block
But ext3_quota_write() function may handle cross block boundary writes
In fact if this ever happen it will result in incorrect journal credits
reservation. And later bug_on triggering. As soon this never happen the
boundary cross loop is NOOP. In order to make things straight
let's remove this loop and assert cross boundary condition.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota
Christoph Hellwig [Tue, 16 Feb 2010 08:44:56 +0000 (03:44 -0500)]
quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota

We already do these checks in the generic code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: split out compat_sys_quotactl support from quota.c
Christoph Hellwig [Tue, 16 Feb 2010 08:44:55 +0000 (03:44 -0500)]
quota: split out compat_sys_quotactl support from quota.c

Instead of adding ifdefs just split it into a new file.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: split out netlink notification support from quota.c
Christoph Hellwig [Tue, 16 Feb 2010 08:44:54 +0000 (03:44 -0500)]
quota: split out netlink notification support from quota.c

Instead of adding ifdefs just split it into a new file.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: remove invalid optimization from quota_sync_all
Christoph Hellwig [Tue, 16 Feb 2010 08:44:53 +0000 (03:44 -0500)]
quota: remove invalid optimization from quota_sync_all

Checking the "VFS" quota enabled and dirty bits from generic code means
this code will never get called for other implementations, e.g. XFS and
GFS2.  Grabbing the reference on the superblock really isn't much overhead
for a global Q_SYNC call, so just drop this optimization.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: move code from sync_quota_sb into vfs_quota_sync
Christoph Hellwig [Tue, 16 Feb 2010 08:44:52 +0000 (03:44 -0500)]
quota: move code from sync_quota_sb into vfs_quota_sync

Currenly sync_quota_sb does a lot of sync and truncate action that only
applies to "VFS" style quotas and is actively harmful for the sync
performance in XFS.  Move it into vfs_quota_sync and add a wait parameter
to ->quota_sync to tell if we need it or not.

My audit of the GFS2 code says it's also not needed given the way GFS2
implements quotas, but I'd be happy if this can get a detailed review.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: clean up Q_XQUOTASYNC
Christoph Hellwig [Tue, 16 Feb 2010 08:44:51 +0000 (03:44 -0500)]
quota: clean up Q_XQUOTASYNC

Currently Q_XQUOTASYNC calls into the quota_sync method, but XFS does something
entirely different in it than the rest of the filesystems.  xfs_quota which
calls Q_XQUOTASYNC expects an asynchronous data writeout to flush delayed
allocations, while the "VFS" quota support wants to flush changes to the quota
file.

So make Q_XQUOTASYNC call into the writeback code directly and make the
quota_sync method optional as XFS doesn't need in the sense expected by the
rest of the quota code.

GFS2 was using limited XFS-style quota and has a quota_sync method fitting
neither the style used by vfs_quota_sync nor xfs_fs_quota_sync.  I left it
in for now as per discussion with Steve it expects to be called from the
sync path this way.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: simplify permission checking
Christoph Hellwig [Tue, 16 Feb 2010 08:44:50 +0000 (03:44 -0500)]
quota: simplify permission checking

Stop having complicated different routines for checking permissions for
XQM vs "VFS" quotas.  Instead do the checks for having sb->s_qcop and
a valid type directly in do_quotactl, and munge the *quotactl_valid functions
into a check_quotactl_permission helper that only checks for permissions.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: special case Q_SYNC without device name
Christoph Hellwig [Tue, 16 Feb 2010 08:44:49 +0000 (03:44 -0500)]
quota: special case Q_SYNC without device name

The Q_SYNC command can be called without the path to a device, in which case
it iterates over all superblocks.  Special case this variant directly in
sys_quotactl so that the other code always gets a superblock and doesn't
need to deal with this case.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: clean up checks for supported quota methods
Christoph Hellwig [Tue, 16 Feb 2010 08:44:48 +0000 (03:44 -0500)]
quota: clean up checks for supported quota methods

Move the checks for sb->s_qcop->foo next to the actual calls for them, same
for sb_has_quota_active checks where applicable.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: split do_quotactl
Christoph Hellwig [Tue, 16 Feb 2010 08:44:47 +0000 (03:44 -0500)]
quota: split do_quotactl

Split out a helper for each non-trivial command from do_quotactl.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: Fix warning when a delayed write happens before quota is enabled
Jan Kara [Tue, 9 Feb 2010 17:20:39 +0000 (18:20 +0100)]
quota: Fix warning when a delayed write happens before quota is enabled

If a delayed-allocation write happens before quota is enabled, the
kernel spits out a warning:
WARNING: at fs/quota/dquot.c:988 dquot_claim_space+0x77/0x112()

because the fact that user has some delayed allocation is not recorded
in quota structure.

Make dquot_initialize() update amount of reserved space for user if it sees
inode has some space reserved. Also make sure that reserved quota space does
not go negative and we warn about the filesystem bug just once.

Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: manage reserved space when quota is not active [v2]
Dmitry Monakhov [Tue, 9 Feb 2010 16:53:36 +0000 (17:53 +0100)]
quota: manage reserved space when quota is not active [v2]

Since we implemented generic reserved space management interface,
then it is possible to account reserved space even when quota
is not active (similar to i_blocks/i_bytes).

Without this patch following testcase result in massive comlain from
WARN_ON in dquot_claim_space()

TEST_CASE:
mount /dev/sdb /mnt -oquota
dd if=/dev/zero of=/mnt/test bs=1M count=1
quotaon /mnt
# fs_reserved_spave == 1Mb
# quota_reserved_space == 0, because quota was disabled
dd if=/dev/zero of=/mnt/test seek=1 bs=1M count=1
# fs_reserved_spave == 2Mb
# quota_reserved_space == 1Mb
sync  # ->dquot_claim_space() -> WARN_ON

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agojbd[2]: remove references to BUFFER_DEBUG
Christoph Egger [Fri, 5 Feb 2010 13:13:33 +0000 (14:13 +0100)]
jbd[2]: remove references to BUFFER_DEBUG

CONFIG_BUFFER_DEBUG seems to have been removed from the documentation
somewhere around 2.4.15 and seemingly hasn't been available even
longer. It is, however, still referenced at one place from the jbd
code (one is a copy of the other header). Time to clean it up

Signed-off-by: Christoph Egger <siccegge@stud.informatik.uni-erlangen.de>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoext3: trivial quota cleanup
Dmitry Monakhov [Tue, 2 Feb 2010 13:05:53 +0000 (16:05 +0300)]
ext3: trivial quota cleanup

The patch is aimed to reorganize and simplify quota code a bit.
Quota code is itself complex enouth, but we can make it more readable
in some places:
- Move quota option parsing to separate functions.
- Simplify old-quota and journaled-quota mix check.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoext3: mount flags manipulation cleanup
Dmitry Monakhov [Tue, 2 Feb 2010 13:05:51 +0000 (16:05 +0300)]
ext3: mount flags manipulation cleanup

Replace intermediate EXT3_MOUNT_XXX flags manipulation to
corresponding macro.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoext3: Use bitops to read/modify EXT3_I(inode)->i_state
Jan Kara [Wed, 6 Jan 2010 20:58:48 +0000 (21:58 +0100)]
ext3: Use bitops to read/modify EXT3_I(inode)->i_state

At several places we modify EXT3_I(inode)->i_state without holding i_mutex
(ext3_release_file, ext3_bmap, ext3_journalled_writepage, ext3_do_update_inode,
...). These modifications are racy and we can lose updates to i_state. So
convert handling of i_state to use bitops which are atomic.

Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoquota: Cleanup S_NOQUOTA handling
Jan Kara [Wed, 6 Jan 2010 16:20:35 +0000 (17:20 +0100)]
quota: Cleanup S_NOQUOTA handling

Cleanup handling of S_NOQUOTA inode flag and document it a bit. The flag
does not have to be set under dqptr_sem. Only functions modifying inode's
dquot pointers have to check the flag under dqptr_sem before going forward
with the modification. This way we are sure that we cannot add new dquot
pointers to the inode which is just becoming a quota file.

The good thing about this cleanup is that there are no more places in quota
code which enforce i_mutex vs. dqptr_sem lock ordering (in particular that
dqptr_sem -> i_mutex of quota file). This should silence some (false) lockdep
warnings with ext4 + quota and generally make life of some filesystems easier.

Signed-off-by: Jan Kara <jack@suse.cz>
14 years agoMerge branch 'for-linus' of git://git.open-osd.org/linux-open-osd
Linus Torvalds [Thu, 4 Mar 2010 16:26:08 +0000 (08:26 -0800)]
Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd

* 'for-linus' of git://git.open-osd.org/linux-open-osd:
  exofs: groups support
  exofs: Prepare for groups
  exofs: Error recovery if object is missing from storage
  exofs: convert io_state to use pages array instead of bio at input
  exofs: RAID0 support
  exofs: Define on-disk per-inode optional layout attribute
  exofs: unindent exofs_sbi_read
  exofs: Move layout related members to a layout structure
  exofs: Recover in the case of read-passed-end-of-file
  exofs: Micro-optimize exofs_i_info
  exofs: debug print even less

14 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Thu, 4 Mar 2010 16:24:47 +0000 (08:24 -0800)]
Merge git://git./linux/kernel/git/davem/sparc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc64: Make prom entry spinlock NMI safe.
  sparc64: Kill off old sys_perfctr system call and state.
  sparc: Update defconfigs.
  sparc: Provide io{read,write}{16,32}be().

14 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6
Linus Torvalds [Thu, 4 Mar 2010 16:24:06 +0000 (08:24 -0800)]
Merge git://git./linux/kernel/git/davem/ide-next-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6: (49 commits)
  drivers/ide: Fix continuation line formats
  ide: fixed section mismatch warning in cmd640.c
  ide: ide_timing_compute() fixup
  ide: make ide_get_best_pio_mode() static
  via82cxxx: use ->pio_mode value to determine pair device speed
  tx493xide: use ->pio_mode value to determine pair device speed
  siimage: use ->pio_mode value to determine pair device speed
  palm_bk3710: use ->pio_mode value to determine pair device speed
  it821x: use ->pio_mode value to determine pair device speed
  cs5536: use ->pio_mode value to determine pair device speed
  cs5535: use ->pio_mode value to determine pair device speed
  cmd64x: fix handling of address setup timings
  amd74xx: use ->pio_mode value to determine pair device speed
  alim15x3: fix handling of UDMA enable bit
  alim15x3: fix handling of DMA timings
  alim15x3: fix handling of command timings
  alim15x3: fix handling of address setup timings
  ide-timings: use ->pio_mode value to determine fastest PIO speed
  ide: change ->set_dma_mode method parameters
  ide: change ->set_pio_mode method parameters
  ...

14 years agoMerge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
Linus Torvalds [Thu, 4 Mar 2010 16:20:14 +0000 (08:20 -0800)]
Merge branch 'next' of git://git./linux/kernel/git/djbw/async_tx

* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (28 commits)
  ioat: cleanup ->timer_fn() and ->cleanup_fn() prototypes
  ioat3: interrupt coalescing
  ioat: close potential BUG_ON race in the descriptor cleanup path
  ioat2: kill pending flag
  ioat3: use ioat2_quiesce()
  ioat3: cleanup, don't enable DCA completion writes
  DMAENGINE: COH 901 318 lli sg offset fix
  DMAENGINE: COH 901 318 configure channel direction
  DMAENGINE: COH 901 318 remove irq counting
  DMAENGINE: COH 901 318 descriptor pool refactoring
  DMAENGINE: COH 901 318 cleanups
  dma: Add MPC512x DMA driver
  Debugging options for the DMA engine subsystem
  iop-adma: redundant/wrong tests in iop_*_count()?
  dmatest: fix handling of an even number of xor_sources
  dmatest: correct raid6 PQ test
  fsldma: Fix cookie issues
  fsldma: Fix cookie issues
  dma: cases IPU_PIX_FMT_BGRA32, BGR32 and ABGR32 are the same in ipu_ch_param_set_size()
  dma: make Open Firmware device id constant
  ...

14 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
Linus Torvalds [Thu, 4 Mar 2010 16:15:33 +0000 (08:15 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/viro/vfs-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (52 commits)
  init: Open /dev/console from rootfs
  mqueue: fix typo "failues" -> "failures"
  mqueue: only set error codes if they are really necessary
  mqueue: simplify do_open() error handling
  mqueue: apply mathematics distributivity on mq_bytes calculation
  mqueue: remove unneeded info->messages initialization
  mqueue: fix mq_open() file descriptor leak on user-space processes
  fix race in d_splice_alias()
  set S_DEAD on unlink() and non-directory rename() victims
  vfs: add NOFOLLOW flag to umount(2)
  get rid of ->mnt_parent in tomoyo/realpath
  hppfs can use existing proc_mnt, no need for do_kern_mount() in there
  Mirror MS_KERNMOUNT in ->mnt_flags
  get rid of useless vfsmount_lock use in put_mnt_ns()
  Take vfsmount_lock to fs/internal.h
  get rid of insanity with namespace roots in tomoyo
  take check for new events in namespace (guts of mounts_poll()) to namespace.c
  Don't mess with generic_permission() under ->d_lock in hpfs
  sanitize const/signedness for udf
  nilfs: sanitize const/signedness in dealing with ->d_name.name
  ...

Fix up fairly trivial (famous last words...) conflicts in
drivers/infiniband/core/uverbs_main.c and security/tomoyo/realpath.c

14 years agoMerge git://git.infradead.org/battery-2.6
Linus Torvalds [Thu, 4 Mar 2010 16:04:22 +0000 (08:04 -0800)]
Merge git://git.infradead.org/battery-2.6

* git://git.infradead.org/battery-2.6:
  power_supply: bq27x00: fix voltage and current units
  power_supply: bq27x00: add status and time properties
  power_supply: bq27x00: add BQ27500 support
  power_supply: bq27x00: fix temperature conversion
  power_supply: bq27x00: remove unused struct fields
  power_supply: bq27x00: remove double endian swap
  da9030_battery: fix spelling in comment
  wm97xx_battery: Clean up some warnings

14 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6
Linus Torvalds [Thu, 4 Mar 2010 15:52:06 +0000 (07:52 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/lrg/voltage-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6: (27 commits)
  Regulators: wm8400 - cleanup platform driver data handling
  Regulators: wm8994 - clean up driver data after removal
  Regulators: wm831x-xxx - clean up driver data after removal
  Regulators: pcap-regulator - clean up driver data after removal
  Regulators: max8660 - annotate probe and remove methods
  Regulators: max1586 - annotate probe and remove methods
  Regulators: lp3971 - fail if platform data was not supplied
  Regulators: tps6507x-regulator - mark probe method as __devinit
  Regulators: tps65023-regulator - mark probe method as __devinit
  Regulators: twl-regulator - mark probe function as __devinit
  Regulators: fixed - annotate probe and remove methods
  Regulators: ab3100 - fix probe and remove annotations
  Regulators: virtual - use sysfs attribute groups
  twl6030: regulator: Configure STATE register instead of REMAP
  regulator: Provide optional dummy regulator for consumers
  regulator: Assume regulators are enabled if they don't report anything
  regulator: Convert fixed voltage regulator to use enable_time()
  regulator: Add WM8994 regulator support
  regulator: enable max8649 regulator driver
  regulator: trivial: fix typos in user-visible Kconfig text
  ...

14 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6
Linus Torvalds [Thu, 4 Mar 2010 15:51:36 +0000 (07:51 -0800)]
Merge git://git./linux/kernel/git/brodo/pcmcia-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:
  pcmcia: disable pcmcia ioctl for !ARM, prepare for removal
  pcmcia: CodingStyle fixes
  pcmcia: alchemy: fixup wrong comments
  pcmcia: remove irq_list parameter from pd6729
  yenta_socket: ENE CB712 CardBus bridge needs special treatment with Echo Audio Indigo soundcards

14 years agoMerge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
Linus Torvalds [Thu, 4 Mar 2010 15:49:37 +0000 (07:49 -0800)]
Merge branch 'drm-linus' of git://git./linux/kernel/git/airlied/drm-2.6

* 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (151 commits)
  vga_switcheroo: disable default y by new rules.
  drm/nouveau: fix *staging* driver build with switcheroo off.
  drm/radeon: fix typo in Makefile
  vga_switcheroo: fix build on platforms with no ACPI
  drm/radeon: Fix printf type warning in 64bit system.
  drm/radeon/kms: bump the KMS version number for square tiling support.
  vga_switcheroo: initial implementation (v15)
  drm/radeon/kms: do not disable audio engine twice
  Revert "drm/radeon/kms: disable HDMI audio for now on rv710/rv730"
  drm/radeon/kms: do not preset audio stuff and start timer when not using audio
  drm/radeon: r100/r200 ums: block ability for userspace app to trash 0 page and beyond
  drm/ttm: fix function prototype to match implementation
  drm/radeon: use ALIGN instead of open coding it
  drm/radeon/kms: initialize set_surface_reg reg for rs600 asic
  drm/i915: Use a dmi quirk to skip a broken SDVO TV output.
  drm/i915: enable/disable LVDS port at DPMS time
  drm/i915: check for multiple write domains in pin_and_relocate
  drm/i915: clean-up i915_gem_flush_gpu_write_domain
  drm/i915: reuse i915_gpu_idle helper
  drm/i915: ensure lru ordering of fence_list
  ...

Fixed trivial conflicts in drivers/gpu/vga/Kconfig

14 years agox86: Issue at least one memory barrier in stop_machine_text_poke()
Masami Hiramatsu [Thu, 4 Mar 2010 03:38:50 +0000 (22:38 -0500)]
x86: Issue at least one memory barrier in stop_machine_text_poke()

Fix stop_machine_text_poke() to issue smp_mb() before exiting
waiting loop, and use cpu_relax() for waiting.

Changes in v2:
 - Don't use ACCESS_ONCE().

Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: systemtap <systemtap@sources.redhat.com>
Cc: DLE <dle-develop@lists.sourceforge.net>
Cc: Jason Baron <jbaron@redhat.com>
LKML-Reference: <20100304033850.3819.74590.stgit@localhost6.localdomain6>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
14 years agoperf probe: Correct probe syntax on command line help
Masami Hiramatsu [Thu, 4 Mar 2010 03:38:43 +0000 (22:38 -0500)]
perf probe: Correct probe syntax on command line help

Move @SRC right after FUNC in syntax according to syntax change
on command line help.

Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Cc: systemtap <systemtap@sources.redhat.com>
Cc: DLE <dle-develop@lists.sourceforge.net>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: K.Prasad <prasad@linux.vnet.ibm.com>
LKML-Reference: <20100304033843.3819.10087.stgit@localhost6.localdomain6>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
14 years agoSLUB: Fix per-cpu merge conflict
Stephen Rothwell [Mon, 1 Mar 2010 05:04:45 +0000 (16:04 +1100)]
SLUB: Fix per-cpu merge conflict

The slab tree adds a percpu variable usage case (commit
9dfc6e68bfe6ee452efb1a4e9ca26a9007f2b864 "SLUB: Use this_cpu operations in
slub"), but the percpu tree removes the prefixing of percpu variables (commit
dd17c8f72993f9461e9c19250e3f155d6d99df22 "percpu: remove per_cpu__ prefix"),
thus causing the following compilation error:

    CC      mm/slub.o
  mm/slub.c: In function ‘alloc_kmem_cache_cpus’:
  mm/slub.c:2078: error: implicit declaration of function ‘per_cpu_var’
  mm/slub.c:2078: warning: assignment makes pointer from integer without a cast
  make[1]: *** [mm/slub.o] Error 1

Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
14 years agoMerge branches 'slab/cleanups', 'slab/failslab', 'slab/fixes' and 'slub/percpu' into...
Pekka Enberg [Thu, 4 Mar 2010 10:07:50 +0000 (12:07 +0200)]
Merge branches 'slab/cleanups', 'slab/failslab', 'slab/fixes' and 'slub/percpu' into slab-for-linus

14 years agoext4: Code cleanup for EXT4_IOC_MOVE_EXT ioctl
Akira Fujita [Thu, 4 Mar 2010 05:39:24 +0000 (00:39 -0500)]
ext4: Code cleanup for EXT4_IOC_MOVE_EXT ioctl

a) Fix sparse warning in ext4_ioctl()
b) Remove unneeded variable in mext_leaf_block()
c) Fix spelling typo in mext_check_arguments()

Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
14 years agoext4: Fix the NULL reference in double_down_write_data_sem()
Akira Fujita [Thu, 4 Mar 2010 05:34:58 +0000 (00:34 -0500)]
ext4: Fix the NULL reference in double_down_write_data_sem()

If EXT4_IOC_MOVE_EXT ioctl is called with NULL donor_fd, fget() in
ext4_ioctl() gets inappropriate file structure for donor; so we need
to do this check earlier, before calling double_down_write_data_sem().

Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
14 years agoext4: Fix insertion point of extent in mext_insert_across_blocks()
Akira Fujita [Thu, 4 Mar 2010 05:31:06 +0000 (00:31 -0500)]
ext4: Fix insertion point of extent in mext_insert_across_blocks()

If the leaf node has 2 extent space or fewer and EXT4_IOC_MOVE_EXT
ioctl is called with the file offset where after the 2nd extent
covers, mext_insert_across_blocks() always tries to insert extent into
the first extent.  As a result, the file gets corrupted because of
wrong extent order.  The patch fixes this problem.

Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
14 years agopadata: Allocate the cpumask for the padata instance
Steffen Klassert [Thu, 4 Mar 2010 05:30:22 +0000 (13:30 +0800)]
padata: Allocate the cpumask for the padata instance

The cpumask of the padata instance was used without allocated.
This caused boot crashes if CONFIG_CPUMASK_OFFSTACK is enabled.
This patch fixes this by doing proper allocation for this cpumask.

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
14 years agoext4: consolidate in_range() definitions
Akinobu Mita [Thu, 4 Mar 2010 04:55:01 +0000 (23:55 -0500)]
ext4: consolidate in_range() definitions

There are duplicate macro definitions of in_range() in mballoc.h and
balloc.c.  This consolidates these two definitions into ext4.h, and
changes extents.c to use in_range() as well.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Andreas Dilger <adilger@sun.com>
14 years agoext4: cleanup to use ext4_grp_offs_to_block()
Akinobu Mita [Thu, 4 Mar 2010 04:53:25 +0000 (23:53 -0500)]
ext4: cleanup to use ext4_grp_offs_to_block()

More cleanup to convert open-coded calculations of the first block
number of a free extent to use ext4_grp_offs_to_block() instead.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Andreas Dilger <adilger@sun.com>
14 years agoext4: cleanup to use ext4_group_first_block_no()
Akinobu Mita [Thu, 4 Mar 2010 04:53:39 +0000 (23:53 -0500)]
ext4: cleanup to use ext4_group_first_block_no()

This is a cleanup and simplification patch which takes some open-coded
calculations to calculate the first block number of a group and
converts them to use the (already defined) ext4_group_first_block_no()
function.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Andreas Dilger <adilger@sun.com>
14 years agoMerge branch 'coh' into dmaengine
Dan Williams [Thu, 4 Mar 2010 04:22:21 +0000 (21:22 -0700)]
Merge branch 'coh' into dmaengine

14 years agoioat: cleanup ->timer_fn() and ->cleanup_fn() prototypes
Dan Williams [Thu, 4 Mar 2010 04:21:13 +0000 (21:21 -0700)]
ioat: cleanup ->timer_fn() and ->cleanup_fn() prototypes

If the calling convention of ->timer_fn() and ->cleanup_fn() are unified
across hardware versions we can drop parameters to ioat_init_channel() and
unify ioat_is_dma_complete() implementations.

Both ->timer_fn() and ->cleanup_fn() are modified to expect a struct
dma_chan pointer.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
14 years agoioat3: interrupt coalescing
Dan Williams [Thu, 4 Mar 2010 04:21:13 +0000 (21:21 -0700)]
ioat3: interrupt coalescing

The hardware automatically disables further interrupts after each event
until rearmed.  This allows a delay to be injected between the occurence
of the interrupt and the running of the cleanup routine.  The delay is
scaled by the descriptor backlog and then written to the INTRDELAY
register which specifies the number of microseconds to hold off
interrupt delivery after an interrupt event occurs.  According to
powertop this reduces the interrupt rate from ~5000 intr/s to ~150
intr/s per without affecting throughput (simple dd to a raid6 array).

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
14 years agoioat: close potential BUG_ON race in the descriptor cleanup path
Dan Williams [Thu, 4 Mar 2010 04:21:10 +0000 (21:21 -0700)]
ioat: close potential BUG_ON race in the descriptor cleanup path

Since ioat_cleanup_preamble() and the update of the last completed
descriptor are not synchronized there is a chance that two cleanup threads
can see descriptors to clean.  If the first cleans up all pending
descriptors then the second will trigger the BUG_ON.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
14 years agoPrioritize synchronous signals over 'normal' signals
Linus Torvalds [Tue, 2 Mar 2010 16:36:46 +0000 (08:36 -0800)]
Prioritize synchronous signals over 'normal' signals

This makes sure that we pick the synchronous signals caused by a
processor fault over any pending regular asynchronous signals sent to
use by [t]kill().

This is not strictly required semantics, but it makes it _much_ easier
for programs like Wine that expect to find the fault information in the
signal stack.

Without this, if a non-synchronous signal gets picked first, the delayed
asynchronous signal will have its signal context pointing to the new
signal invocation, rather than the instruction that caused the SIGSEGV
or SIGBUS in the first place.

This is not all that pretty, and we're discussing making the synchronous
signals more explicit rather than have these kinds of implicit
preferences of SIGSEGV and friends.  See for example

http://bugzilla.kernel.org/show_bug.cgi?id=15395

for some of the discussion.  But in the meantime this is a simple and
fairly straightforward work-around, and the whole

if (x & Y)
x &= Y;

thing can be compiled into (and gcc does do it) just three instructions:

movq    %rdx, %rax
andl    $Y, %eax
cmovne  %rax, %rdx

so it is at least a simple solution to a subtle issue.

Reported-and-tested-by: Pavel Vilim <wylda@volny.cz>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoMerge branch 'for-fsnotify' into for-linus
Al Viro [Wed, 3 Mar 2010 22:12:40 +0000 (17:12 -0500)]
Merge branch 'for-fsnotify' into for-linus

14 years agoext4: Release page references acquired in ext4_da_block_invalidatepages
Jan Kara [Wed, 3 Mar 2010 21:19:32 +0000 (16:19 -0500)]
ext4: Release page references acquired in ext4_da_block_invalidatepages

We forget to release page references we acquire in
ext4_da_block_invalidatepages.  Luckily, this function gets called only if we
are not able to allocate blocks for delay-allocated data so that function
should better never be called.

Also cleanup handling of index variable.

Reported-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
14 years agoinit: Open /dev/console from rootfs
Eric W. Biederman [Wed, 3 Mar 2010 07:53:19 +0000 (23:53 -0800)]
init: Open /dev/console from rootfs

To avoid potential problems with an empty /dev open /dev/console
from rootfs instead of waiting to mount our root filesystem and
mounting it there.   This effectively guarantees that there will
be a device node, and it won't be on a filesystem that we will
ever unmount, so there are no issues with leaving /dev/console
open and pinning the filesystem.

This is actually more effective than automatically mounting
devtmpfs on /dev because it removes removes the occasionally
problematic assumption that /dev/console exists from the boot
code.

With this patch I was able to throw busybox on my /boot partition
(which has no /dev directory) and boot into userspace without
problems.

The only possible negative consequence I can think of is that
someone out there deliberately used did not use a character device
that is major 5 minor 2 for /dev/console.  Does anyone know of a
situation in which that could make sense?

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agomqueue: fix typo "failues" -> "failures"
André Goddard Rosa [Tue, 23 Feb 2010 07:04:27 +0000 (04:04 -0300)]
mqueue: fix typo "failues" -> "failures"

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agomqueue: only set error codes if they are really necessary
André Goddard Rosa [Tue, 23 Feb 2010 07:04:26 +0000 (04:04 -0300)]
mqueue: only set error codes if they are really necessary

... postponing assignments until they're needed. Doesn't change code size.

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agomqueue: simplify do_open() error handling
André Goddard Rosa [Tue, 23 Feb 2010 07:04:25 +0000 (04:04 -0300)]
mqueue: simplify do_open() error handling

It reduces code size:
text    data     bss     dec     hex filename
9925      72      16   10013    271d ipc/mqueue-BEFORE.o
9885      72      16    9973    26f5 ipc/mqueue-AFTER.o

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agomqueue: apply mathematics distributivity on mq_bytes calculation
André Goddard Rosa [Tue, 23 Feb 2010 07:04:24 +0000 (04:04 -0300)]
mqueue: apply mathematics distributivity on mq_bytes calculation

Code size reduction:
   text    data     bss     dec     hex filename
   9941      72      16   10029    272d ipc/mqueue-BEFORE.o
   9925      72      16   10013    271d ipc/mqueue-AFTER.o

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agomqueue: remove unneeded info->messages initialization
André Goddard Rosa [Tue, 23 Feb 2010 07:04:23 +0000 (04:04 -0300)]
mqueue: remove unneeded info->messages initialization

... and abort earlier if we couldn't allocate the message pointers array,
avoiding the u->mq_bytes accounting logic.

It reduces code size:
   text    data     bss     dec     hex filename
   9949      72      16   10037    2735 ipc/mqueue-BEFORE.o
   9941      72      16   10029    272d ipc/mqueue-AFTER.o

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agomqueue: fix mq_open() file descriptor leak on user-space processes
André Goddard Rosa [Tue, 23 Feb 2010 07:04:28 +0000 (04:04 -0300)]
mqueue: fix mq_open() file descriptor leak on user-space processes

We leak fd on lookup_one_len() failure

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agofix race in d_splice_alias()
Al Viro [Wed, 3 Mar 2010 19:13:08 +0000 (14:13 -0500)]
fix race in d_splice_alias()

rehashing the negative placeholder opens a race with d_lookup();
we unhash it almost immediately (by d_move()), but the race
window is there.  Since d_move() doesn't rely on target being
hashed, we don't need that d_rehash() at all.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoset S_DEAD on unlink() and non-directory rename() victims
Al Viro [Wed, 3 Mar 2010 19:12:08 +0000 (14:12 -0500)]
set S_DEAD on unlink() and non-directory rename() victims

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agovfs: add NOFOLLOW flag to umount(2)
Miklos Szeredi [Wed, 10 Feb 2010 11:15:53 +0000 (12:15 +0100)]
vfs: add NOFOLLOW flag to umount(2)

Add a new UMOUNT_NOFOLLOW flag to umount(2).  This is needed to prevent
symlink attacks in unprivileged unmounts (fuse, samba, ncpfs).

Additionally, return -EINVAL if an unknown flag is used (and specify
an explicitly unused flag: UMOUNT_UNUSED).  This makes it possible for
the caller to determine if a flag is supported or not.

CC: Eugene Teo <eugene@redhat.com>
CC: Michael Kerrisk <mtk.manpages@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoget rid of ->mnt_parent in tomoyo/realpath
Al Viro [Fri, 5 Feb 2010 14:37:21 +0000 (09:37 -0500)]
get rid of ->mnt_parent in tomoyo/realpath

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agohppfs can use existing proc_mnt, no need for do_kern_mount() in there
Al Viro [Fri, 5 Feb 2010 14:34:36 +0000 (09:34 -0500)]
hppfs can use existing proc_mnt, no need for do_kern_mount() in there

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoMirror MS_KERNMOUNT in ->mnt_flags
Al Viro [Fri, 5 Feb 2010 14:30:46 +0000 (09:30 -0500)]
Mirror MS_KERNMOUNT in ->mnt_flags

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoget rid of useless vfsmount_lock use in put_mnt_ns()
Al Viro [Fri, 5 Feb 2010 07:21:06 +0000 (02:21 -0500)]
get rid of useless vfsmount_lock use in put_mnt_ns()

It hadn't been needed since we'd sanitized the logics in
mark_mounts_for_expiry() (which, in turn, used to be a
rudiment of bad old times when namespace_sem was per-ns).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoTake vfsmount_lock to fs/internal.h
Al Viro [Fri, 5 Feb 2010 07:01:14 +0000 (02:01 -0500)]
Take vfsmount_lock to fs/internal.h

no more users left outside of fs/*.c (and very few outside of
fs/namespace.c, actually)

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoget rid of insanity with namespace roots in tomoyo
Al Viro [Fri, 5 Feb 2010 06:41:33 +0000 (01:41 -0500)]
get rid of insanity with namespace roots in tomoyo

passing *any* namespace root to __d_path() as root is equivalent
to just passing it {NULL, NULL}; no need to bother with finding
the root of our namespace in there.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agotake check for new events in namespace (guts of mounts_poll()) to namespace.c
Al Viro [Fri, 5 Feb 2010 05:40:25 +0000 (00:40 -0500)]
take check for new events in namespace (guts of mounts_poll()) to namespace.c

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoDon't mess with generic_permission() under ->d_lock in hpfs
Al Viro [Mon, 1 Feb 2010 16:05:16 +0000 (11:05 -0500)]
Don't mess with generic_permission() under ->d_lock in hpfs

Just use dentry_unhash() there

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agosanitize const/signedness for udf
Al Viro [Mon, 1 Feb 2010 02:28:48 +0000 (21:28 -0500)]
sanitize const/signedness for udf

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agonilfs: sanitize const/signedness in dealing with ->d_name.name
Al Viro [Mon, 1 Feb 2010 02:03:58 +0000 (21:03 -0500)]
nilfs: sanitize const/signedness in dealing with ->d_name.name

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agonilfs really shouldn't slap struct dentry on stack...
Al Viro [Mon, 1 Feb 2010 02:02:09 +0000 (21:02 -0500)]
nilfs really shouldn't slap struct dentry on stack...

... especially when it only needs (and initializes) .d_name of it

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agosanitize const/signedness of ufs a bit
Al Viro [Mon, 1 Feb 2010 01:49:54 +0000 (20:49 -0500)]
sanitize const/signedness of ufs a bit

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agosanitize signedness/const for pointers to char in hpfs a bit
Al Viro [Sun, 31 Jan 2010 22:09:29 +0000 (17:09 -0500)]
sanitize signedness/const for pointers to char in hpfs a bit

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agonew helper: iterate_mounts()
Al Viro [Sun, 31 Jan 2010 03:51:25 +0000 (22:51 -0500)]
new helper: iterate_mounts()

apply function to vfsmounts in set returned by collect_mounts(),
stop if it returns non-zero.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agofix NFS4 handling of mountpoint stat
Al Viro [Sat, 30 Jan 2010 21:11:21 +0000 (16:11 -0500)]
fix NFS4 handling of mountpoint stat

RFC says we need to follow the chain of mounts if there's more
than one stacked on that point.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoClean follow_dotdot() up a bit
Al Viro [Sat, 30 Jan 2010 20:47:29 +0000 (15:47 -0500)]
Clean follow_dotdot() up a bit

No need to open-code follow_up() in it and locking can be lighter.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agofix mnt_mountpoint abuse in smack
Al Viro [Sat, 30 Jan 2010 20:27:27 +0000 (15:27 -0500)]
fix mnt_mountpoint abuse in smack

(mnt,mnt_mountpoint) pair is conceptually wrong; if you want
to use it for generating pathname and for nothing else *and*
if you know that vfsmount tree is unchanging, you can get
away with that, but the right solution for that is (mnt,mnt_root).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoa couple of mntget+dget -> path_get in nfs4proc
Al Viro [Sat, 30 Jan 2010 18:51:04 +0000 (13:51 -0500)]
a couple of mntget+dget -> path_get in nfs4proc

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoSwitch alloc_nfs_open_context() to struct path
Al Viro [Sat, 30 Jan 2010 18:44:07 +0000 (13:44 -0500)]
Switch alloc_nfs_open_context() to struct path

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoNew helper: path_is_under(path1, path2)
Al Viro [Sat, 30 Jan 2010 18:16:21 +0000 (13:16 -0500)]
New helper: path_is_under(path1, path2)

Analog of is_subdir for vfsmount,dentry pairs, moved from audit_tree.c

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoVFS: Clean up shared mount flag propagation
Valerie Aurora [Tue, 26 Jan 2010 19:20:47 +0000 (14:20 -0500)]
VFS: Clean up shared mount flag propagation

The handling of mount flags in set_mnt_shared() got a little tangled
up during previous cleanups, with the following problems:

* MNT_PNODE_MASK is defined as a literal constant when it should be a
bitwise xor of other MNT_* flags
* set_mnt_shared() clears and then sets MNT_SHARED (part of MNT_PNODE_MASK)
* MNT_PNODE_MASK could use a comment in mount.h
* MNT_PNODE_MASK is a terrible name, change to MNT_SHARED_MASK

This patch fixes these problems.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agokill unused invalidate_inode_pages helper
Christoph Hellwig [Tue, 26 Jan 2010 16:27:20 +0000 (17:27 +0100)]
kill unused invalidate_inode_pages helper

No one is calling this anymore as everyone has switched to
invalidate_mapping_pages long time ago.  Also update a few
references to it in comments.  nfs has two more, but I can't
easily figure what they are actually referring to, so I left
them as-is.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agofs: re-order super_block to remove 16 bytes of padding on 64bit builds
Richard Kennedy [Tue, 26 Jan 2010 14:12:43 +0000 (14:12 +0000)]
fs: re-order super_block to remove 16 bytes of padding on 64bit builds

re-order structure super_block to remove 16 bytes of alignment padding
on 64bit builds.

This shrinks the size of super_block from 712 to 696 bytes so requiring
one fewer 64 byte cache lines.

Signed-off-by: Richard Kennedy <richard@rsk.demon.co.uk>
-----
patch against 2.6.33-rc5
compiled & tested on x86_64 AMDX2 desktop machine.

I've been running with this patch applied for several weeks with no
problems.

regards
Richard
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoSimplify failure exits in s390/hypfs fill_super()
Al Viro [Mon, 25 Jan 2010 23:36:07 +0000 (18:36 -0500)]
Simplify failure exits in s390/hypfs fill_super()

->kill_sb() will be called after any failure exit, so no need
to duplicate what it can do.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoDon't bother with d_genocide in rpc_pipe
Al Viro [Mon, 25 Jan 2010 23:30:38 +0000 (18:30 -0500)]
Don't bother with d_genocide in rpc_pipe

kill_litter_super() from ->kill_sb() will take care of the junk

14 years agoUse kill_litter_super() in autofs4 ->kill_sb()
Al Viro [Sun, 24 Jan 2010 05:28:52 +0000 (00:28 -0500)]
Use kill_litter_super() in autofs4 ->kill_sb()

... and get rid of open-coding its guts (i.e. RIP autofs4_force_release())

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoGet rid of mnt_mountpoint abuses in ext4
Al Viro [Sun, 24 Jan 2010 01:10:29 +0000 (20:10 -0500)]
Get rid of mnt_mountpoint abuses in ext4

path to mnt/mnt->mnt_root is no worse than that to
mnt->mnt_parent/mnt->mnt_mountpoint *and* needs no
pinning the sucker down (mnt is not going away and
mnt->mnt_root won't change)

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoSanitize autofs_dev_ioctl_ismountpoint()
Al Viro [Sun, 24 Jan 2010 01:08:53 +0000 (20:08 -0500)]
Sanitize autofs_dev_ioctl_ismountpoint()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoswitch infiniband uverbs to anon_inodes
Al Viro [Mon, 18 Jan 2010 06:38:00 +0000 (01:38 -0500)]
switch infiniband uverbs to anon_inodes

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoioat2: kill pending flag
Dan Williams [Wed, 3 Mar 2010 18:47:43 +0000 (11:47 -0700)]
ioat2: kill pending flag

The pending == 2 case no longer exists in the driver so, we can use
ioat2_ring_pending() outside the lock to determine if there might be any
descriptors in the ring that the hardware has not seen.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
14 years agoioat3: use ioat2_quiesce()
Dan Williams [Wed, 3 Mar 2010 18:47:42 +0000 (11:47 -0700)]
ioat3: use ioat2_quiesce()

Replace open coded ioat2_quiesce() call in ioat3_restart_channel

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
14 years agoioat3: cleanup, don't enable DCA completion writes
Dan Williams [Wed, 3 Mar 2010 18:47:42 +0000 (11:47 -0700)]
ioat3: cleanup, don't enable DCA completion writes

We already disallow raid operations while DCA is globally enabled, so
having it locally enabled is a nop and confusing when reading the code.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
14 years agoadd several pieces to shared subtree documentation
Al Viro [Sat, 16 Jan 2010 19:10:21 +0000 (14:10 -0500)]
add several pieces to shared subtree documentation

* document locking
* add the missing part of data structure invariants (relationship
between mnt_share and mnt_slave lists in case of a peer group
among slaves).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoKill CL_PROPAGATION, sanitize fs/pnode.c:get_source()
Al Viro [Sat, 16 Jan 2010 18:28:47 +0000 (13:28 -0500)]
Kill CL_PROPAGATION, sanitize fs/pnode.c:get_source()

First of all, get_source() never results in CL_PROPAGATION
alone.  We either get CL_MAKE_SHARED (for the continuation
of peer group) or CL_SLAVE (slave that is not shared) or both
(beginning of peer group among slaves).  Massage the code to
make that explicit, kill CL_PROPAGATION test in clone_mnt()
(nothing sets CL_MAKE_SHARED without CL_PROPAGATION and in
clone_mnt() we are checking CL_PROPAGATION after we'd found
that there's no CL_SLAVE, so the check for CL_MAKE_SHARED
would do just as well).

Fix comments, while we are at it...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoSwitch gfs2 to nd_set_link()
Al Viro [Thu, 14 Jan 2010 05:59:16 +0000 (00:59 -0500)]
Switch gfs2 to nd_set_link()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agoSwitch may_open() and break_lease() to passing O_...
Al Viro [Thu, 24 Dec 2009 11:47:55 +0000 (06:47 -0500)]
Switch may_open() and break_lease() to passing O_...

... instead of mixing FMODE_ and O_

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agofs: improve remount,ro vs buffercache coherency
Nick Piggin [Tue, 22 Dec 2009 00:28:53 +0000 (16:28 -0800)]
fs: improve remount,ro vs buffercache coherency

Invalidate sb->s_bdev on remount,ro.

Fixes a problem reported by Jorge Boncompte who is seeing corruption
trying to snapshot a minix filesystem image.  Some filesystems modify
their metadata via a path other than the bdev buffer cache (eg.  they may
use a private linear mapping for their metadata, or implement directories
in pagecache, etc).  Also, file data modifications usually go to the bdev
via their own mappings.

These updates are not coherent with buffercache IO (eg.  via /dev/bdev)
and never have been.  However there could be a reasonable expectation that
after a mount -oremount,ro operation then the buffercache should
subsequently be coherent with previous filesystem modifications.

So invalidate the bdev mappings on a remount,ro operation to provide a
coherency point.

The problem was exposed when we switched the old rd to brd because old rd
didn't really function like a normal block device and updates to rd via
mappings other than the buffercache would still end up going into its
buffercache.  But the same problem has always affected other "normal"
block devices, including loop.

[akpm@linux-foundation.org: repair comment layout]
Reported-by: "Jorge Boncompte [DTI2]" <jorge@dti2.net>
Tested-by: "Jorge Boncompte [DTI2]" <jorge@dti2.net>
Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agofs/dcache.c: CodingStyle cleanup
H Hartley Sweeten [Tue, 5 Jan 2010 20:45:18 +0000 (13:45 -0700)]
fs/dcache.c: CodingStyle cleanup

Cleanup EXPORT* macros according to Documantation/CodingStyle.

Move EXPORT* macros to the line immediately after the closing
function brace.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agosome clean up in fs/proc
Helight.Xu [Wed, 30 Dec 2009 05:24:41 +0000 (13:24 +0800)]
some clean up in fs/proc

EXPORT_SYMBOL(proc_symlink);
EXPORT_SYMBOL(proc_mkdir);
EXPORT_SYMBOL(create_proc_entry);
EXPORT_SYMBOL(proc_create_data);
EXPORT_SYMBOL(remove_proc_entry);

Those EXPORT_SYMBOL shouldn't be in fs/proc/root.c,
should be in fs/proc/generic.c.

Signed-off-by: Helight.Xu <helight.xu@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
14 years agolibfs: Unexport and kill simple_prepare_write
Boaz Harrosh [Tue, 12 Jan 2010 14:18:08 +0000 (16:18 +0200)]
libfs: Unexport and kill simple_prepare_write

Remove the EXPORT_UNUSED_SYMBOL of simple_prepare_write

Collapse simple_prepare_write into it's only caller, though
making it simpler and clearer to understand.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>