linux-stable-rt/mm
Rob Landley f7b3a4359b [PATCH] Fix bd_claim() error code.
Problem: In some circumstances, bd_claim() is returning the wrong error
code.

If we try to swapon an unused block device that isn't swap formatted, we
get -EINVAL.  But if that same block device is already mounted, we instead
get -EBUSY, even though it still isn't a valid swap device.

This issue came up on the busybox list trying to get the error message
from "swapon -a" right.  If a swap device is already enabled, we get -EBUSY,
and we shouldn't report this as an error.  But we can't distinguish the two
-EBUSY conditions, which are very different errors.

In the code, bd_claim() returns either 0 or -EBUSY, but in this case busy
means "somebody other than sys_swapon has already claimed this", and
_that_ means this block device can't be a valid swap device.  So return
-EINVAL there.

Signed-off-by: Rob Landley <rob@landley.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-22 22:17:37 -07:00
..
Kconfig [PATCH] fix mm/Kconfig spelling 2005-09-17 11:50:01 -07:00
Makefile
bootmem.c [PATCH] x86-64: Reverse order of bootmem lists 2005-09-12 10:49:56 -07:00
fadvise.c
filemap.c [PATCH] mm/filemap.c: make two functions static 2005-09-10 10:06:25 -07:00
filemap.h
filemap_xip.c [PATCH] execute-in-place fixes 2005-07-15 09:54:50 -07:00
fremap.c
highmem.c
hugetlb.c [PATCH] hugetlb: move stale pte check into huge_pte_alloc() 2005-09-05 00:05:46 -07:00
internal.h
madvise.c [PATCH] mm: fix madvise vma merging 2005-09-05 00:05:44 -07:00
memory.c [PATCH] mm/filemap.c: make two functions static 2005-09-10 10:06:25 -07:00
mempolicy.c [PATCH] Fix MPOL_F_VERIFY 2005-09-13 08:22:28 -07:00
mempool.c [PATCH] propagate __nocast annotations 2005-07-07 18:23:46 -07:00
mincore.c
mlock.c
mmap.c [PATCH] fix locking comment in unmap_region() 2005-09-21 10:11:55 -07:00
mprotect.c [PATCH] mm: add a note about partially hardcoded VM_* flags 2005-09-21 10:11:55 -07:00
mremap.c [PATCH] mm: remap ZERO_PAGE mappings 2005-09-05 00:05:44 -07:00
msync.c
nommu.c [PATCH] uclinux: add NULL check, 0 end valid check and some more exports to nommu.c 2005-09-11 20:43:47 -07:00
oom_kill.c [PATCH] mm: fix-up schedule_timeout() usage 2005-09-10 10:06:37 -07:00
page-writeback.c [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
page_alloc.c [PATCH] use add_taint() for setting tainted bit flags 2005-09-13 08:22:29 -07:00
page_io.c
pdflush.c
prio_tree.c
readahead.c [PATCH] readahead: reset cache_hit earlier 2005-09-07 16:57:25 -07:00
rmap.c [PATCH] mm: cleanup rmap 2005-09-05 00:05:43 -07:00
shmem.c [PATCH] tmpfs: Enable atomic inode security labeling 2005-09-09 13:57:28 -07:00
slab.c [PATCH] __kmalloc: Generate BUG if size requested is too large. 2005-09-22 22:17:36 -07:00
sparse.c [PATCH] sparsemem extreme: hotplug preparation 2005-09-05 00:05:38 -07:00
swap.c
swap_state.c [PATCH] mm/swap_state: Fix "nocast type" warnings 2005-09-10 10:06:28 -07:00
swapfile.c [PATCH] Fix bd_claim() error code. 2005-09-22 22:17:37 -07:00
thrash.c
tiny-shmem.c
truncate.c
vmalloc.c [PATCH] update kfree, vfree, and vunmap kerneldoc 2005-09-09 14:03:43 -07:00
vmscan.c [PATCH] vm: kswapd cleanup: use pgdat 2005-09-13 08:22:28 -07:00