[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: