All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Smack: fuse mount hang fix
@ 2008-06-02 17:04 Casey Schaufler
  2008-06-02 17:58 ` Luiz Fernando N. Capitulino
  0 siblings, 1 reply; 2+ messages in thread
From: Casey Schaufler @ 2008-06-02 17:04 UTC (permalink / raw)
  To: akpm, torvalds, Ahmed S. Darwish, Miklos Szeredi, lcapitulino
  Cc: linux-kernel

From: Casey Schaufler <casey@schaufler-ca.com>

The d_instantiate hook for Smack can hang on the root
inode of a filesystem if the file system code has not
really done all the set-up. Fuse is known to encounter
this problem. This change detects an attempt to
instantiate a root inode and addresses it early in the
processing, before any attempt is made to do something
that might hang.

Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>

---

security/smack/smack_lsm.c |   12 ++++++++++++
1 file changed, 12 insertions(+)

diff -uprN -X linux-2.6.25-g0530-base/Documentation/dontdiff linux-2.6.25-g0530-base/security/smack/smack_lsm.c linux-2.6.25-g0530/security/smack/smack_lsm.c
--- linux-2.6.25-g0530-base/security/smack/smack_lsm.c	2008-06-01 14:41:06.000000000 -0700
+++ linux-2.6.25-g0530/security/smack/smack_lsm.c	2008-06-01 20:29:57.000000000 -0700
@@ -1881,6 +1881,18 @@ static void smack_d_instantiate(struct d
	final = sbsp->smk_default;

	/*
+	 * If this is the root inode the superblock
+	 * may be in the process of initialization.
+	 * If that is the case use the root value out
+	 * of the superblock.
+	 */
+	if (opt_dentry->d_parent == opt_dentry) {
+		isp->smk_inode = sbsp->smk_root;
+		isp->smk_flags |= SMK_INODE_INSTANT;
+		goto unlockandout;
+	}
+
+	/*
	 * This is pretty hackish.
	 * Casey says that we shouldn't have to do
	 * file system specific code, but it does help





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-06-02 17:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-02 17:04 [PATCH] Smack: fuse mount hang fix Casey Schaufler
2008-06-02 17:58 ` Luiz Fernando N. Capitulino

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.