Update of /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/util
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24511/cluster/ssi/util
Modified Files:
Tag: OPENSSI-RH
ssidev.c
Log Message:
M openssi/kernel/cluster/ssi/util/ssidev.c
Fix infinite recursion panic caused by
"dd if=/dev/1/zero of=/dev/2/null"
Index: ssidev.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/util/Attic/ssidev.c,v
retrieving revision 1.5.2.9
retrieving revision 1.5.2.10
diff -u -d -r1.5.2.9 -r1.5.2.10
--- ssidev.c 21 May 2004 18:34:54 -0000 1.5.2.9
+++ ssidev.c 25 Jun 2004 02:50:12 -0000 1.5.2.10
@@ -1371,15 +1371,24 @@
struct dentry *dp = NULL;
struct vfsmount *mp = NULL;
clusternode_t save_nc;
+ char *cp;
error = reop_export_path(file->f_dentry, file->f_vfsmnt, 0, &pdp);
if (error >= 0) {
+ if (!strncmp("/cluster/node", pdp->pathname, 13)) {
+ cp = strstr(pdp->pathname + 13, "/");
+ if (cp != NULL && !strncmp(cp, "/dev/", 5))
+ pdp->pathname = cp;
+ }
save_nc = current->node_context;
current->node_context = CLUSTERNODE_THIS;
error = reop_import_path(pdp, &dp, &mp);
current->node_context = save_nc;
}
reop_export_path_free(&pdp);
+ if (cfs_inode_is_cfs(dp->d_inode) &&
+ itocmi(dp->d_inode)->mi_server != this_node)
+ error = -EINVAL;
if (error >= 0)
error = ssidev_dentry_reopen(dp, mp, file);
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
|