Keith Mannthey
08bafc0341
block: Supress Buffer I/O errors when SCSI REQ_QUIET flag set
...
Allow the scsi request REQ_QUIET flag to be propagated to the buffer
file system layer. The basic ideas is to pass the flag from the scsi
request to the bio (block IO) and then to the buffer layer. The buffer
layer can then suppress needless printks.
This patch declutters the kernel log by removed the 40-50 (per lun)
buffer io error messages seen during a boot in my multipath setup . It
is a good chance any real errors will be missed in the "noise" it the
logs without this patch.
During boot I see blocks of messages like
"
__ratelimit: 211 callbacks suppressed
Buffer I/O error on device sdm, logical block 5242879
Buffer I/O error on device sdm, logical block 5242879
Buffer I/O error on device sdm, logical block 5242847
Buffer I/O error on device sdm, logical block 1
Buffer I/O error on device sdm, logical block 5242878
Buffer I/O error on device sdm, logical block 5242879
Buffer I/O error on device sdm, logical block 5242879
Buffer I/O error on device sdm, logical block 5242879
Buffer I/O error on device sdm, logical block 5242879
Buffer I/O error on device sdm, logical block 5242872
"
in my logs.
My disk environment is multipath fiber channel using the SCSI_DH_RDAC
code and multipathd. This topology includes an "active" and "ghost"
path for each lun. IO's to the "ghost" path will never complete and the
SCSI layer, via the scsi device handler rdac code, quick returns the IOs
to theses paths and sets the REQ_QUIET scsi flag to suppress the scsi
layer messages.
I am wanting to extend the QUIET behavior to include the buffer file
system layer to deal with these errors as well. I have been running this
patch for a while now on several boxes without issue. A few runs of
bonnie++ show no noticeable difference in performance in my setup.
Thanks for John Stultz for the quiet_error finalization.
Submitted-by: Keith Mannthey <kmannth@us.ibm.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2008-12-29 08:28:44 +01:00
..
9p
Merge branch 'next' into for-linus
2008-12-25 11:40:09 +11:00
adfs
vfs: Use const for kernel parser table
2008-10-13 10:10:37 -07:00
affs
CRED: Wrap task credential accesses in the AFFS filesystem
2008-11-14 10:38:45 +11:00
afs
fs: replace NIPQUAD()
2008-10-31 00:56:28 -07:00
autofs
CRED: Wrap task credential accesses in the autofs filesystem
2008-11-14 10:38:45 +11:00
autofs4
Merge branch 'master' into next
2008-11-14 11:29:12 +11:00
befs
befs: annotate fs32 on tests for superblock endianness
2008-10-16 11:21:46 -07:00
bfs
CRED: Wrap task credential accesses in the BFS filesystem
2008-11-14 10:38:47 +11:00
cifs
cifs: update for new IP4/6 address printing
2008-12-28 16:29:58 -08:00
coda
coda: fix creds reference
2008-11-20 08:11:52 +11:00
configfs
[PATCH] assorted path_lookup() -> kern_path() conversions
2008-10-23 05:12:52 -04:00
cramfs
debugfs
integrity: special fs magic
2008-10-13 09:47:43 +11:00
devpts
CRED: Wrap task credential accesses in the devpts filesystem
2008-11-14 10:38:49 +11:00
dlm
fix warning in fs/dlm/netlink.c
2008-11-25 16:51:45 -08:00
ecryptfs
Merge branch 'master' into next
2008-12-04 17:16:36 +11:00
efs
[PATCH] switch all filesystems over to d_obtain_alias
2008-10-23 05:13:01 -04:00
exportfs
Merge branch 'next' into for-linus
2008-12-25 11:40:09 +11:00
ext2
CRED: Wrap task credential accesses in the Ext2 filesystem
2008-11-14 10:38:50 +11:00
ext3
Merge branch 'master' into next
2008-11-14 11:29:12 +11:00
ext4
Merge branch 'next' into for-linus
2008-12-25 11:40:09 +11:00
fat
Merge branch 'master' into next
2008-11-14 11:29:12 +11:00
freevxfs
fuse
CRED: Use RCU to access another task's creds and to release a task's own creds
2008-11-14 10:39:19 +11:00
gfs2
CRED: Wrap task credential accesses in the GFS2 filesystem
2008-11-14 10:38:53 +11:00
hfs
CRED: Wrap task credential accesses in the HFS filesystem
2008-11-14 10:38:54 +11:00
hfsplus
CRED: Wrap task credential accesses in the HFSplus filesystem
2008-11-14 10:38:54 +11:00
hostfs
hostfs: fix a duplicated global function name
2008-11-19 18:50:00 -08:00
hpfs
CRED: Wrap task credential accesses in the HPFS filesystem
2008-11-14 10:38:55 +11:00
hppfs
CRED: Use creds in file structs
2008-11-14 10:39:25 +11:00
hugetlbfs
CRED: Wrap current->cred and a few other accessors
2008-11-14 10:39:18 +11:00
isofs
[PATCH] switch all filesystems over to d_obtain_alias
2008-10-23 05:13:01 -04:00
jbd
jbd: don't give up looking for space so easily in __log_wait_for_space
2008-11-06 22:37:59 -05:00
jbd2
jbd2: don't give up looking for space so easily in __jbd2_log_wait_for_space
2008-11-06 22:38:07 -05:00
jffs2
Merge git://git.infradead.org/mtd-2.6
2008-11-06 15:43:13 -08:00
jfs
CRED: Wrap task credential accesses in the JFS filesystem
2008-11-14 10:38:56 +11:00
lockd
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2008-12-15 20:03:50 -08:00
minix
CRED: Wrap task credential accesses in the Minix filesystem
2008-11-14 10:38:57 +11:00
ncpfs
CRED: Wrap task credential accesses in the NCPFS filesystem
2008-11-14 10:38:58 +11:00
nfs
fs: replace NIPQUAD()
2008-10-31 00:56:28 -07:00
nfs_common
nfsd
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
2008-12-28 12:49:40 -08:00
nls
remove CONFIG_KMOD from fs
2008-10-17 02:38:36 +11:00
ntfs
ntfs: don't fool kernel-doc
2008-12-01 19:55:25 -08:00
ocfs2
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
2008-12-28 12:49:40 -08:00
omfs
CRED: Wrap task credential accesses in the OMFS filesystem
2008-11-14 10:38:59 +11:00
openpromfs
[PATCH] fix ->llseek for more directories
2008-10-23 05:13:21 -04:00
partitions
block/md: fix md autodetection
2008-11-18 15:08:56 +01:00
proc
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
2008-12-28 16:54:33 -08:00
qnx4
ramfs
CRED: Wrap task credential accesses in the RAMFS filesystem
2008-11-14 10:39:00 +11:00
reiserfs
CRED: Wrap task credential accesses in the ReiserFS filesystem
2008-11-14 10:39:01 +11:00
romfs
smbfs
CRED: Wrap current->cred and a few other accessors
2008-11-14 10:39:18 +11:00
sysfs
[PATCH] fix ->llseek for more directories
2008-10-23 05:13:21 -04:00
sysv
CRED: Wrap task credential accesses in the SYSV filesystem
2008-11-14 10:39:02 +11:00
ubifs
Merge branch 'master' into next
2008-12-04 17:16:36 +11:00
udf
Merge branch 'master' into next
2008-12-04 17:16:36 +11:00
ufs
CRED: Wrap task credential accesses in the UFS filesystem
2008-11-14 10:39:04 +11:00
xfs
Merge branch 'next' into for-linus
2008-12-25 11:40:09 +11:00
aio.c
anon_inodes.c
CRED: Wrap task credential accesses in the filesystem subsystem
2008-11-14 10:39:05 +11:00
attr.c
CRED: Wrap task credential accesses in the filesystem subsystem
2008-11-14 10:39:05 +11:00
bad_inode.c
binfmt_aout.c
CRED: Make execve() take advantage of copy-on-write credentials
2008-11-14 10:39:24 +11:00
binfmt_elf.c
Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
2008-12-28 12:33:21 -08:00
binfmt_elf_fdpic.c
CRED: Make execve() take advantage of copy-on-write credentials
2008-11-14 10:39:24 +11:00
binfmt_em86.c
Allow recursion in binfmt_script and binfmt_misc
2008-10-16 11:21:38 -07:00
binfmt_flat.c
CRED: Make execve() take advantage of copy-on-write credentials
2008-11-14 10:39:24 +11:00
binfmt_misc.c
Allow recursion in binfmt_script and binfmt_misc
2008-10-16 11:21:38 -07:00
binfmt_script.c
Allow recursion in binfmt_script and binfmt_misc
2008-10-16 11:21:38 -07:00
binfmt_som.c
CRED: Make execve() take advantage of copy-on-write credentials
2008-11-14 10:39:24 +11:00
bio-integrity.c
bio.c
blktrace: port to tracepoints, update
2008-11-26 13:04:35 +01:00
block_dev.c
[PATCH 1/2] kill FMODE_NDELAY_NOW
2008-12-04 04:22:57 -05:00
buffer.c
block: Supress Buffer I/O errors when SCSI REQ_QUIET flag set
2008-12-29 08:28:44 +01:00
char_dev.c
[PATCH] tidy up chrdev_open
2008-10-23 05:12:59 -04:00
compat.c
CRED: Make execve() take advantage of copy-on-write credentials
2008-11-14 10:39:24 +11:00
compat_binfmt_elf.c
compat_ioctl.c
dcache.c
[PATCH] fs: add a sanity check in d_free
2008-10-23 05:17:12 -04:00
dcookies.c
direct-io.c
Remove Andrew Morton's old email accounts
2008-10-16 11:21:32 -07:00
dnotify.c
dquot.c
CRED: Wrap task credential accesses in the filesystem subsystem
2008-11-14 10:39:05 +11:00
drop_caches.c
eventfd.c
eventpoll.c
epoll: introduce resource usage limits
2008-12-01 19:55:24 -08:00
exec.c
Merge branch 'next' into for-linus
2008-12-25 11:40:09 +11:00
fcntl.c
Merge branch 'next' into for-linus
2008-12-25 11:40:09 +11:00
fifo.c
[PATCH] introduce fmode_t, do annotations
2008-10-21 07:47:06 -04:00
file.c
file_table.c
CRED: Use creds in file structs
2008-11-14 10:39:25 +11:00
filesystems.c
proc: move /proc/filesystems to fs/filesystems.c
2008-10-23 14:27:09 +04:00
fs-writeback.c
Remove Andrew Morton's old email accounts
2008-10-16 11:21:32 -07:00
generic_acl.c
inode.c
inotify.c
inotify: fix IN_ONESHOT unmount event watcher
2008-12-10 08:01:53 -08:00
inotify_user.c
CRED: Wrap task credential accesses in the filesystem subsystem
2008-11-14 10:39:05 +11:00
internal.h
CRED: Make execve() take advantage of copy-on-write credentials
2008-11-14 10:39:24 +11:00
ioctl.c
Fix a race condition in FASYNC handling
2008-12-05 15:35:10 -08:00
ioprio.c
CRED: Use RCU to access another task's creds and to release a task's own creds
2008-11-14 10:39:19 +11:00
Kconfig
[patch 1/3] FS_MBCACHE: don't needlessly make it built-in
2008-10-23 05:13:26 -04:00
Kconfig.binfmt
add CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS
2008-10-20 08:52:39 -07:00
libfs.c
fs: remove prepare_write/commit_write
2008-10-30 11:38:45 -07:00
locks.c
CRED: Wrap task credential accesses in the filesystem subsystem
2008-11-14 10:39:05 +11:00
Makefile
fat: move fs/vfat/* and fs/msdos/* to fs/fat
2008-11-06 15:41:20 -08:00
mbcache.c
mpage.c
Remove Andrew Morton's old email accounts
2008-10-16 11:21:32 -07:00
namei.c
Merge branch 'master' into next
2008-12-04 17:16:36 +11:00
namespace.c
Merge branch 'master' into next
2008-11-14 11:29:12 +11:00
nfsctl.c
nfsctl: add headers for credentials
2008-11-20 08:11:55 +11:00
no-block.c
open.c
CRED: Inaugurate COW credentials
2008-11-14 10:39:23 +11:00
pipe.c
CRED: Wrap task credential accesses in the filesystem subsystem
2008-11-14 10:39:05 +11:00
pnode.c
pnode.h
posix_acl.c
CRED: Wrap task credential accesses in the filesystem subsystem
2008-11-14 10:39:05 +11:00
quota.c
CRED: Wrap task credential accesses in the filesystem subsystem
2008-11-14 10:39:05 +11:00
quota_v1.c
quota_v2.c
read_write.c
[PATCH] generic_file_llseek tidyups
2008-10-23 05:12:59 -04:00
read_write.h
readdir.c
[PATCH] prepare vfs_readdir() callers to returning filldir result
2008-10-23 05:13:10 -04:00
select.c
select: deal with math overflow from borderline valid userland data
2008-10-26 11:22:08 -07:00
seq_file.c
vfs, seqfile: export mangle_path() generally
2008-11-28 18:07:10 +01:00
signalfd.c
splice.c
fs: remove prepare_write/commit_write
2008-10-30 11:38:45 -07:00
stack.c
stat.c
super.c
security: pass mount flags to security_sb_kern_mount()
2008-12-20 09:02:39 +11:00
sync.c
timerfd.c
utimes.c
xattr.c
xattr_acl.c