Commit Graph

34170 Commits

Author SHA1 Message Date
Russell Cattelan dc41aeedef [GFS2] Fix for mmap() bug in readpage
Fix for Red Hat bz 205307. Don't need to lock in readpage if
the higher level code has already grabbed the lock.

Signed-off-by: Russell Cattelan <cattelan@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-18 17:26:48 -04:00
Steven Whitehouse 7a6bbacbb8 [GFS2] Map multiple blocks at once where possible
This is a tidy up of the GFS2 bmap code. The main change is that the
bh is passed to gfs2_block_map allowing the flags to be set directly
rather than having to repeat that code several times in ops_address.c.

At the same time, the extent mapping code from gfs2_extent_map has
been moved into gfs2_block_map. This allows all calls to gfs2_block_map
to map extents in the case that no allocation is taking place. As a
result reads and non-allocating writes should be faster. A quick test
with postmark appears to support this.

There is a limit on the number of blocks mapped in a single bmap
call in that it will only ever map blocks which are pointed to
from a single pointer block. So in other words, it will never try
to do additional i/o in order to satisfy read-ahead. The maximum
number of blocks is thus somewhat less than 512 (the GFS2 4k block
size minus the header divided by sizeof(u64)). I've further limited
the mapping of "normal" blocks to 32 blocks (to avoid extra work)
since readpages() will currently read a maximum of 32 blocks ahead (128k).

Some further work will probably be needed to set a suitable value
for DIO as well, but for now thats left at the maximum 512 (see
ops_address.c:gfs2_get_block_direct).

There is probably a lot more that can be done to improve bmap for GFS2,
but this is a good first step.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-18 17:18:23 -04:00
David Teigland 65952fb4e9 [GFS2] print mount errors related to sysfs
Print an error message if mount fails in setting up the sysfs files.

Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-18 09:43:23 -04:00
Steven Whitehouse a8336344a5 [GFS2] Fix glock hash clearing
A one liner bug fix to prevent the return value being
wrong when more than one superblock is mounted.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-14 13:57:38 -04:00
Steven Whitehouse faa31ce85f [GFS2] Tidy up log.c
Based upon previous feedback from lkml and also removing some
commented out debugging which is no longer needed.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-13 11:13:27 -04:00
Steven Whitehouse 16feb9fec0 [GFS2] Use atomic_t rather than kref in glock.c
Use atomic_t as the ref count in glocks rather than a kref.
This is another step towards using RCU for the glock hash.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-13 10:43:37 -04:00
Steven Whitehouse 0bc0748dfb Merge branch 'master' into gfs2 2006-09-13 09:55:09 -04:00
Linus Torvalds 95064a75eb Linux v2.6.18-rc7
One last time..
2006-09-12 18:41:36 -07:00
Linus Torvalds bd314d976e Merge branch 'audit.b29' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current
* 'audit.b29' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
  [PATCH] sparc64 audit syscall classes hookup
  [PATCH] syscall class hookup for all normal targets
2006-09-12 17:37:24 -07:00
Linus Torvalds 48c068e0f4 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
  [CIFS] Fix CIFS readdir access denied when SE Linux enabled
2006-09-12 17:34:46 -07:00
Linus Torvalds 7366935a49 Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
* master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
  V4L/DVB (4608c): Fix I2C dependencies for saa7146 modules
  V4L/DVB (4608b): i2c deps fix on DVB
  V4L/DVB (4605): Fixes an issue with V4L1 and make headers-install
  V4L/DVB (4520): Fix an error when loading bttv driver on PV M4900.
  V4L/DVB (4511): Restore tuner_ymec_tvf66t5_b_dff_pal_ranges[] to fix UHF switch functionality
  V4L/DVB (4494a): Fix compilation when V4L1 support is not present
2006-09-12 17:33:42 -07:00
Linus Torvalds 3ee4b889a0 Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6:
  USB: Fix unload oops and memory leak in yealink driver
  usbserial: Reference leak
2006-09-12 17:32:21 -07:00
Linus Torvalds 7258ea8acd Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6:
  sh64: Add a sane pm_power_off implementation.
  sh64: Use generic BUG_ON()/WARN_ON().
  sh64: Trivial build fixes.
  sh64: Drop deprecated ISA tuning for legacy toolchains.
2006-09-12 17:31:36 -07:00
Linus Torvalds af84b99f22 Merge git://oss.sgi.com:8090/xfs/xfs-2.6
* git://oss.sgi.com:8090/xfs/xfs-2.6:
  [XFS] Fix a bad pointer dereference in the quota statvfs handling.
  [XFS] Fix xfs_splice_write() so appended data gets to disk.
  [XFS] Fix ABBA deadlock between i_mutex and iolock. Avoid calling
  [XFS] Prevent free space oversubscription and xfssyncd looping.
2006-09-12 17:31:16 -07:00
Steven Whitehouse b6397893a5 [GFS2] Use hlist for glock hash chains
This results in smaller list heads, so that we can have more chains
in the same amount of memory (twice as many). I've multiplied the
size of the table by four though - this is because we are saving
memory by not having one lock per chain any more. So we land up
using about the same amount of memory for the hash table as we
did before I started these changes, the difference being that we
now have four times as many hash chains.

The reason that I say "about the same amount of memory" is that the
actual amount now depends upon the NR_CPUS and some of the config
variables, so that its not exact and in some cases we do use more
memory. Eventually we might want to scale the hash table size
according to the size of physical ram as measured on module load.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-12 10:10:01 -04:00
Henk Vergonet 3e2aac366f USB: Fix unload oops and memory leak in yealink driver
This patch fixes a memory leak and a kernel oops when trying to unload
the driver, due to an unbalanced cleanup.
Thanks Ivar Jensen for spotting my mistake.

Signed-off-by: Henk Vergonet <henk.vergonet@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-09-12 03:10:21 -07:00
Matthias Urlichs 5992583889 usbserial: Reference leak
A sufficiently-large number of USB serial devices causes a reference leak
when /proc/tty/drivers/usbserial is read.

Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-09-12 03:10:20 -07:00
Al Viro f6bc0c1c5b [PATCH] sparc64 audit syscall classes hookup
... that should do it for all targets; the only remaining issues are
mips (currently treated as non-biarch) and handling of other OS
emulations (OSF/SunOS/Solaris/???).  The latter would need to be
assigned new AUDIT_ARCH_... ABI numbers anyway...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-09-12 03:05:05 -04:00
Al Viro e65e1fc2d2 [PATCH] syscall class hookup for all normal targets
Take default arch/*/kernel/audit.c to lib/, have those with special
needs (== biarch) define AUDIT_ARCH in their Kconfig.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-09-12 03:04:40 -04:00
Paul Mundt 1bb99a649a sh64: Add a sane pm_power_off implementation.
sh64 wasn't providing a sensible pm_power_off(), add one,
and just wrap it to machine_power_off, which already does
the right thing.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-09-12 14:40:09 +09:00
Paul Mundt 5606014148 sh64: Use generic BUG_ON()/WARN_ON().
sh64 doesn't need to do anything special for BUG_ON() or
WARN_ON(), use the generic versions.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-09-12 14:38:23 +09:00
Paul Mundt 21264136ce sh64: Trivial build fixes.
While we've been sorting out the toolchain fiasco, some of
the code has suffered a bit of bitrot. Building with GCC4
also brings up some more build warnings. Trivial fixes for
both issues.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-09-12 14:36:46 +09:00
Paul Mundt ccdfc526a9 sh64: Drop deprecated ISA tuning for legacy toolchains.
The original sh64 toolchains required that we tune the ISA
level accordingly to not have head.S/entry.S blow up. With
current toolchains, this is no longer the case, and the
syntax magically changed as well, causing all current
toolchains to die a horrible death.

Incidentally, code generation in other parts of the kernel
is now significantly complex enough that none of the older
toolchains make it very far these days, so there's not
even any point in preserving legacy compatability via
as-option.

This fixes a long-standing issue, as noted here:

	http://lkml.org/lkml/2005/1/5/223

Though at the time the current toolchains were too broken
to make adjusting the tuning worthwhile.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-09-12 14:21:25 +09:00
Steven Whitehouse 2426443460 [GFS2] Rewrite of examine_bucket()
The existing implementation of this function in glock.c was not
very efficient as it relied upon keeping a cursor element upon the
hash chain in question and moving it along. This new version improves
upon this by using the current element as a cursor. This is possible
since we only look at the "next" element in the list after we've
taken the read_lock() subsequent to calling the examiner function.
Obviously we have to eventually drop the ref count that we are then
left with and we cannot do that while holding the read_lock, so we
do that next time we drop the lock. That means either just before
we examine another glock, or when the loop has terminated.

The new implementation has several advantages: it uses only a
read_lock() rather than a write_lock(), so it can run simnultaneously
with other code, it doesn't need a "plug" element, so that it removes
a test not only from this list iterator, but from all the other glock
list iterators too. So it makes things faster and smaller.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-11 21:40:30 -04:00
Linus Torvalds 05ff0e291a Merge branch 'audit.b28' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current
* 'audit.b28' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
  [PATCH] audit: AUDIT_PERM support
  [PATCH] audit: more syscall classes added
  [PATCH] syscall classes hookup for ppc and s390
  [PATCH] update audit rule change messages
  [PATCH] sanity check audit_buffer
  [PATCH] fix ppid bug in 2.6.18 kernel
2006-09-11 11:43:17 -07:00
Linus Torvalds 5eea7ee207 Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6:
  usbtouchscreen: fix ITM data reading
  USB: New device ID for ftdi_sio usb serial driver
  USB: Support for USB20SVGA-WH & USB20SVGA-DG
  USB: hid-core.c: fix duplicate USB_DEVICE_ID_GTCO_404
2006-09-11 11:42:27 -07:00
Al Viro 55669bfa14 [PATCH] audit: AUDIT_PERM support
add support for AUDIT_PERM predicate

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-09-11 13:32:30 -04:00
Al Viro dc104fb323 [PATCH] audit: more syscall classes added
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-09-11 13:32:27 -04:00
Al Viro c08037997d [PATCH] syscall classes hookup for ppc and s390
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-09-11 13:32:25 -04:00
Amy Griffis 5974501e2d [PATCH] update audit rule change messages
Make the audit message for implicit rule removal more informative.
Make the rule update message consistent with other messages.

Signed-off-by: Amy Griffis <amy.griffis@hp.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-09-11 13:32:17 -04:00
Amy Griffis 8ef2d3040e [PATCH] sanity check audit_buffer
Add sanity checks for NULL audit_buffer consistent with other
audit_log* routines.

Signed-off-by: Amy Griffis <amy.griffis@hp.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-09-11 13:32:17 -04:00
Steve Grubb 3b33ac3182 [PATCH] fix ppid bug in 2.6.18 kernel
Hello,

During some troubleshooting, I found that ppid was accidentally omitted from
the legacy rule section. This resulted in EINVAL for any rule with ppid sent
with AUDIT_ADD.

Signed-off-by: Steve Grubb <sgrubb@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-09-11 13:32:04 -04:00
Linus Torvalds e004876c3b Merge master.kernel.org:/home/rmk/linux-2.6-mmc
* master.kernel.org:/home/rmk/linux-2.6-mmc:
  [MMC] Always use a sector size of 512 bytes
  [MMC] Cleanup 385e3227d4
  [ARM] 3751/1: i.MX/MX1 SD/MMC use 512 bytes request for SCR read
  [MMC] Fix SD timeout calculation
  [MMC] constify mmc_host_ops
2006-09-11 07:56:38 -07:00
Linus Torvalds 5a05e5bf20 Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 3778/1: S3C24XX: remove changelogs from include/asm-arm/arch-s3c2410 [simtec]
  [ARM] 3783/1: S3C2412: fix IRQ_EINT0 to IRQ_EINT3 handling
  [ARM] 3779/1: S3C24XX: remove changelogs from include/asm-arm/arch-s3c2410 [left]
  [ARM] 3777/1: S3C24XX:  remove changelogs from include/asm-arm/arch-s3c2410 [regs-*.h]
  [ARM] 3776/1: S3C24XX: remove changelogs from include/asm-arm/arch-s3c2410
  [ARM] 3775/1: S3C24XX: do not add same sysdev_driver to two classes
  [ARM] 3774/1: S3C24XX: SMDK2413 has two machine IDs
  [ARM] 3773/1: Add the HWCAP_VFP bit for the ARM926 CPUs
  [ARM] 3772/1: Fix compilation error in mach-ixp4xx/nslu2*
  [ARM] 3767/1: S3C24XX: remove changelog comments from arch/arm/mach-s3c2410
  [ARM] 3766/1: Fix typo in ARM _raw_read_trylock
2006-09-11 07:55:39 -07:00
Linus Torvalds 08a55c01b5 Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
  [PATCH] Fix dm9000 release_resource
2006-09-11 07:54:45 -07:00
Linus Torvalds 3f2f1257ff Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  [PATCH] ata_piix: add map 01b for ICH7M
  [libata] sata_mv: errata check buglet fix
2006-09-11 07:54:14 -07:00
Alan Cox 28a2a3f587 [PATCH] Fix 2.6.18-rc6 IDE breakage, add missing ident needed for current VIA boards
There are two changes here.  The first reverses the broken PCI_DEVICE
conversion back to the old format.  The second adds a missing PCI ID so
you can actually boot 2.6.18 on 2 month old VIA motherboards (right now
only 2.6.18-mm works).

CC'd to Jeff to check the PCI ident but its a) in several distro kernels
and b) in 2.6.18-mm [twice ??]

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-11 07:53:44 -07:00
Dirk Opfer 519854876c [PATCH] Fix dm9000 release_resource
dm9000_release_board calls release_resource with the platform resource
instead of the requested resource:

db->addr_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
db->addr_req = request_mem_region(db->addr_res->start, i, pdev->name);

dm9000_release_board:

if (db->addr_res != NULL) {
release_resource(db->addr_res);
kfree(db->addr_req);

With this behavior the kernel will crash on the second removal. The
attached patch fix this problem.

Signed-off-by: Dirk Opfer <Dirk@Opfer-Online.de>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-11 09:08:38 -04:00
Tejun Heo 6708374178 [PATCH] ata_piix: add map 01b for ICH7M
Although the document says otherwise, some ich7m uses map 01b.  This
patch adds separate map DB for ICH7M and adds map entry for 01b.

This was spotted on an ASUS laptop by Jonathan Dieter.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Jonathan Dieter <jdieter@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-11 08:52:29 -04:00
Andres Salomon 62f1d0e6de [libata] sata_mv: errata check buglet fix
Fix a buglet; the errata check below this code is assuming the value in
the sstatus variable is what was pulled out of the SCR_STATUS register.
However, the status checks in the timeout loop clobber everything
but the first 4 bits of sstatus, so the errata checks are invalid.

This patch changes it to not clobber SStatus.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-09-11 08:51:05 -04:00
Mauro Carvalho Chehab e7ea8fc285 V4L/DVB (4608c): Fix I2C dependencies for saa7146 modules
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-09-10 13:46:01 -03:00
Andrew de Quincey c482d4f6e8 V4L/DVB (4608b): i2c deps fix on DVB
Several DVB modules depends on I2C

Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-09-10 13:45:58 -03:00
Mauro Carvalho Chehab 8a905162e0 V4L/DVB (4605): Fixes an issue with V4L1 and make headers-install
V4L1 support should be disabled when no CONFIG_VIDEO_V4L1_COMPAT is defined,
to allow checking for broken V4L2 ports. This is very important during the
migration phase for V4L2 API.
However, userspace apps should be capable of using both APIs, since they need
to test at runtime, via VIDIOCGCAP ioctl, if V4L1 is supported. So, when
__KERNEL__ is not defined, those ioctls and corresponding structs should be
visible.
This patch also removes the obsolete defines HAVE_V4L1 and HAVE_V4L2, that
where causing some confusion, and were replaced by CONFIG_VIDEO_V4L1_COMPAT
and CONFIG_VIDEO_V4L2.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-09-10 13:45:55 -03:00
Mauro Carvalho Chehab c663155c3d V4L/DVB (4520): Fix an error when loading bttv driver on PV M4900.
Previously, this were reported:
	Ooops: IR config error [card=139]

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-09-10 13:45:53 -03:00
Hermann Pitton c2d1923313 V4L/DVB (4511): Restore tuner_ymec_tvf66t5_b_dff_pal_ranges[] to fix UHF switch functionality
The tena_9533_di_pal_ranges use 0x04 instead the original 0x08 for the
UHF (range 2) switching. This is wrong and therefore nothing happens.
Restore tuner_ymec_tvf66t5_b_dff_pal_ranges[] to make the UHF switch
working again.

Signed-off-by: Hermann Pitton <hermann-pitton@arcor.de>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-09-10 13:45:48 -03:00
Mauro Carvalho Chehab c3ab204ccb V4L/DVB (4494a): Fix compilation when V4L1 support is not present
VIDIOCGMBUF should be compiled only when V4L1 support is selected, since
this ioctl is from the obsoleted API.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-09-10 13:45:46 -03:00
Steven Whitehouse 94610610f1 [GFS2] Remove unused function from glock.c
The callback for iopen locks is unused, so this removes
it.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-09 18:59:27 -04:00
Steven Whitehouse a5e08a9ef5 [GFS2] Add consts to glock sorting function
Add back the consts which were casted away in the glock sorting
function. Also add early exit code.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-09 17:07:05 -04:00
Steven Whitehouse 087efdd391 [GFS2] Make glock hash locks proportional to NR_CPUS
Make the number of locks used for hash chains in glock.c
proportional to NR_CPUS. Also move constants for the number
of hash chains into glock.c from incore.h since they are
not used outside of glock.c.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-09 16:59:11 -04:00
Steven Whitehouse ff6af411ae [GFS2] vfree should be kfree (II)
The superblock is now created with kmalloc, not vmalloc.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-09-09 16:56:34 -04:00