summaryrefslogtreecommitdiffstats
path: root/kernel-patch-2.6.27
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2008-10-01 18:50:43 -0700
committerDan Williams <dan.j.williams@intel.com>2008-10-15 14:15:52 -0700
commit695154b2e7f975527f8f3f9591f0a21474bfe1b1 (patch)
tree98a16315f08174369ce8038bc1948a68ae2e60a9 /kernel-patch-2.6.27
parent1e4bc070a73716292c1681a86524f46f656f8acb (diff)
downloadmdadm-695154b2e7f975527f8f3f9591f0a21474bfe1b1.tar.gz
mdadm-695154b2e7f975527f8f3f9591f0a21474bfe1b1.tar.xz
mdadm-695154b2e7f975527f8f3f9591f0a21474bfe1b1.zip
mdmon: periodically retry to create the socket
If initial socket creation fails, EROFS, set a periodic alarm to wake up the manager and retry. Include a kernel patch that will wake us up if the mount flags are changed. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'kernel-patch-2.6.27')
-rw-r--r--kernel-patch-2.6.2736
1 files changed, 36 insertions, 0 deletions
diff --git a/kernel-patch-2.6.27 b/kernel-patch-2.6.27
new file mode 100644
index 0000000..8d0785d
--- /dev/null
+++ b/kernel-patch-2.6.27
@@ -0,0 +1,36 @@
+touch_mnt_namespace when the mount flags change
+
+From: Dan Williams <dan.j.williams@intel.com>
+
+Daemons that need to be launched while the rootfs is read-only can now
+poll /proc/mounts to be notified when their O_RDWR requests may no
+longer end in EROFS.
+
+Cc: Kay Sievers <kay.sievers@vrfy.org>
+Cc: Neil Brown <neilb@suse.de>
+Signed-off-by: Dan Williams <dan.j.williams@intel.com>
+---
+
+ fs/namespace.c | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+
+diff --git a/fs/namespace.c b/fs/namespace.c
+index 6e283c9..1bd5ba2 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -1553,8 +1553,13 @@ static noinline int do_remount(struct nameidata *nd, int flags, int mnt_flags,
+ if (!err)
+ nd->path.mnt->mnt_flags = mnt_flags;
+ up_write(&sb->s_umount);
+- if (!err)
++ if (!err) {
+ security_sb_post_remount(nd->path.mnt, flags, data);
++
++ spin_lock(&vfsmount_lock);
++ touch_mnt_namespace(nd->path.mnt->mnt_ns);
++ spin_unlock(&vfsmount_lock);
++ }
+ return err;
+ }
+