Bug#354493: kernel-source-2.6.8: can't install grub on cciss device
Package: kernel-source-2.6.8
Version: 2.6.8-16sarge2
Severity: normal
Tags: patch
In kernel.org 2.6.8, the block layer (drivers/block/ioctl.c) has:
case BLKFLSBUF:
if (!capable(CAP_SYS_ADMIN))
return -EACCES;
if (disk->fops->ioctl) {
ret = disk->fops->ioctl(inode, file, cmd, arg);
if (ret != -EINVAL)
return ret;
}
fsync_bdev(bdev);
invalidate_bdev(bdev, 0);
return 0;
So, fsync_bdev()/invalidate_bdev() are only called if ret == -EINVAL.
In pristine 2.6.8, cciss returned -EBADRQC, so these functions were never
called.
In 2.6.9, the block layer was modified to also accept -ENOTTY:
http://www.kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commitdiff;h=b295216702a8fb86ef8e3951df9d7118746e35c7
So, in 2.6.10-rc4, the only fix needed was to make cciss return -ENOTTY, which
is what Mike submitted.
http://www.kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commitdiff;h=d28d721eb3f7df904fb1533d314879da33f9b50a
Since 2.6.8 didn't accept -ENOTTY, simply backporting this fix wasn't enough to
fix the bug in 2.6.8, we also need the block layer changeset.
-- System Information:
Debian Release: 3.1
Architecture: ia64
Kernel: Linux 2.6.8-2-mckinley-smp
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages kernel-source-2.6.8 depends on:
ii binutils 2.15-6 The GNU assembler, linker and bina
ii bzip2 1.0.2-7 high-quality block-sorting file co
ii coreutils [fileutils] 5.2.1-2 The GNU core utilities
-- no debconf information
Reply to: