diff options
author | Dan Williams <dan.j.williams@intel.com> | 2008-10-01 18:50:43 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2008-10-15 14:15:52 -0700 |
commit | 695154b2e7f975527f8f3f9591f0a21474bfe1b1 (patch) | |
tree | 98a16315f08174369ce8038bc1948a68ae2e60a9 /kernel-patch-2.6.27 | |
parent | 1e4bc070a73716292c1681a86524f46f656f8acb (diff) | |
download | mdadm-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.27 | 36 |
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; + } + |