summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChuck Ebbert <cebbert@redhat.com>2011-02-16 17:04:06 -0500
committerChuck Ebbert <cebbert@redhat.com>2011-02-16 17:04:06 -0500
commitb161e65d967a62e8c598485b7a601842cf292225 (patch)
treedb07d3541286564ad6c2b0a170b245917f23f570
parentacd41dbaf4b1f634bfa0b5d1ff53704b04a09bad (diff)
downloadkernel-b161e65d967a62e8c598485b7a601842cf292225.tar.gz
kernel-b161e65d967a62e8c598485b7a601842cf292225.tar.xz
kernel-b161e65d967a62e8c598485b7a601842cf292225.zip
Revert check for read-only block device added in .38 (#672265)
-rw-r--r--kernel.spec7
-rw-r--r--revert-block-check-bdev-readonly.patch33
2 files changed, 40 insertions, 0 deletions
diff --git a/kernel.spec b/kernel.spec
index b9f3202c2..0c6a80c3f 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -738,6 +738,9 @@ Patch12440: bridge-fix-mglist-corruption-that-leads-to-memory-corruption.patch
# rhbz#676860
Patch12441: usb-sierra-add-airprime-direct-ip.patch
+# rhbz#672265
+Patch12442: revert-block-check-bdev-readonly.patch
+
%endif
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1358,6 +1361,9 @@ ApplyPatch bridge-fix-mglist-corruption-that-leads-to-memory-corruption.patch
# rhbz#676860
ApplyPatch usb-sierra-add-airprime-direct-ip.patch
+# rhbz#672265
+ApplyPatch revert-block-check-bdev-readonly.patch
+
# END OF PATCH APPLICATIONS
%endif
@@ -1964,6 +1970,7 @@ fi
* Wed Feb 16 2011 Chuck Ebbert <cebbert@redhat.com>
- Add support for Airprime/Sierra USB IP modem (#676860)
- Make virtio_console built-in on x86_64 (#677713)
+- Revert check for read-only block device added in .38 (#672265)
* Tue Feb 15 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc5.git0.1
- Linux 2.6.38-rc5 (81 minutes later...)
diff --git a/revert-block-check-bdev-readonly.patch b/revert-block-check-bdev-readonly.patch
new file mode 100644
index 000000000..6227f0458
--- /dev/null
+++ b/revert-block-check-bdev-readonly.patch
@@ -0,0 +1,33 @@
+This reverts commit 75f1dc0d076d1c1168f2115f1941ea627d38bd5a. The revert
+could not be done automatically because changes after that commit
+altered the code too much.
+
+Signed-off-by: Chuck Ebbert <cebbert@redhat.com>
+
+--- a/fs/block_dev.c
++++ b/fs/block_dev.c
+@@ -1215,12 +1215,6 @@ int blkdev_get(struct block_device *bdev
+
+ res = __blkdev_get(bdev, mode, 0);
+
+- /* __blkdev_get() may alter read only status, check it afterwards */
+- if (!res && (mode & FMODE_WRITE) && bdev_read_only(bdev)) {
+- __blkdev_put(bdev, mode, 0);
+- res = -EACCES;
+- }
+-
+ if (whole) {
+ /* finish claiming */
+ mutex_lock(&bdev->bd_mutex);
+@@ -1298,6 +1292,11 @@ struct block_device *blkdev_get_by_path(
+ if (err)
+ return ERR_PTR(err);
+
++ if ((mode & FMODE_WRITE) && bdev_read_only(bdev)) {
++ blkdev_put(bdev, mode);
++ return ERR_PTR(-EACCES);
++ }
++
+ return bdev;
+ }
+ EXPORT_SYMBOL(blkdev_get_by_path);