* [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.