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

* Re: [PATCH] Smack: fuse mount hang fix
  2008-06-02 17:04 [PATCH] Smack: fuse mount hang fix Casey Schaufler
@ 2008-06-02 17:58 ` Luiz Fernando N. Capitulino
  0 siblings, 0 replies; 2+ messages in thread
From: Luiz Fernando N. Capitulino @ 2008-06-02 17:58 UTC (permalink / raw)
  To: casey; +Cc: akpm, torvalds, Ahmed S. Darwish, Miklos Szeredi, linux-kernel

Em Mon, 02 Jun 2008 10:04:32 -0700
Casey Schaufler <casey@schaufler-ca.com> escreveu:

| 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>

 Fixed the problem for me, thank very much.

Tested-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>

-- 
Luiz Fernando N. Capitulino

^ 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.