]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh...
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 24 Aug 2007 04:38:21 +0000 (21:38 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 24 Aug 2007 04:38:21 +0000 (21:38 -0700)
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
  9p: fix bad error path in conversion routines
  9p: remove deprecated v9fs_fid_lookup_remove()
  9p: update maintainers and documentation
  9p: fix use after free

Documentation/filesystems/9p.txt
MAINTAINERS
fs/9p/fid.c
fs/9p/fid.h
net/9p/conv.c
net/9p/mux.c

index bbd8b28c13de917dc3bdc6d04b1bc38e9aea2768..cda6905cbe49cac2f73dfd0437a53940c25810df 100644 (file)
@@ -6,12 +6,26 @@ ABOUT
 
 v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol.
 
-This software was originally developed by Ron Minnich <rminnich@lanl.gov>
-and Maya Gokhale <maya@lanl.gov>.  Additional development by Greg Watson
+This software was originally developed by Ron Minnich <rminnich@sandia.gov>
+and Maya Gokhale.  Additional development by Greg Watson
 <gwatson@lanl.gov> and most recently Eric Van Hensbergen
 <ericvh@gmail.com>, Latchesar Ionkov <lucho@ionkov.net> and Russ Cox
 <rsc@swtch.com>.
 
+The best detailed explanation of the Linux implementation and applications of
+the 9p client is available in the form of a USENIX paper:
+   http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html
+
+Other applications are described in the following papers:
+       * XCPU & Clustering
+               http://www.xcpu.org/xcpu-talk.pdf
+       * KVMFS: control file system for KVM
+               http://www.xcpu.org/kvmfs.pdf
+       * CellFS: A New ProgrammingModel for the Cell BE
+               http://www.xcpu.org/cellfs-talk.pdf
+       * PROSE I/O: Using 9p to enable Application Partitions
+               http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf
+
 USAGE
 =====
 
@@ -90,9 +104,9 @@ subset of the namespace by extending the path: '#U*'/tmp would just export
 and export.
 
 A Linux version of the 9p server is now maintained under the npfs project
-on sourceforge (http://sourceforge.net/projects/npfs).  There is also a
-more stable single-threaded version of the server (named spfs) available from
-the same CVS repository.
+on sourceforge (http://sourceforge.net/projects/npfs).  The currently
+maintained version is the single-threaded version of the server (named spfs)
+available from the same CVS repository.
 
 There are user and developer mailing lists available through the v9fs project
 on sourceforge (http://sourceforge.net/projects/v9fs).
index abe5fa7f9c338c6885d8a28e754d7e1775fd267d..10a6f57776b29eb82c49485a5f39ecd173a52396 100644 (file)
@@ -167,11 +167,11 @@ S:        Maintained
 P:     Eric Van Hensbergen
 M:     ericvh@gmail.com
 P:     Ron Minnich
-M:     rminnich@lanl.gov
+M:     rminnich@sandia.gov
 P:     Latchesar Ionkov
 M:     lucho@ionkov.net
 L:     v9fs-developer@lists.sourceforge.net
-W:     http://v9fs.sf.net
+W:     http://swik.net/v9fs
 T:     git kernel.org:/pub/scm/linux/kernel/ericvh/v9fs.git
 S:     Maintained
 
index 08fa320b7e6d20deedb124a1ea549c79ba4e597a..15e05a15b575cb8d06d0cdd8742b4aad6b8e72bf 100644 (file)
@@ -92,23 +92,6 @@ struct p9_fid *v9fs_fid_lookup(struct dentry *dentry)
        return fid;
 }
 
-struct p9_fid *v9fs_fid_lookup_remove(struct dentry *dentry)
-{
-       struct p9_fid *fid;
-       struct v9fs_dentry *dent;
-
-       dent = dentry->d_fsdata;
-       fid = v9fs_fid_lookup(dentry);
-       if (!IS_ERR(fid)) {
-               spin_lock(&dent->lock);
-               list_del(&fid->dlist);
-               spin_unlock(&dent->lock);
-       }
-
-       return fid;
-}
-
-
 /**
  * v9fs_fid_clone - lookup the fid for a dentry, clone a private copy and
  *     release it
index 47a0ba742872aa1a18d172c28b8bd884fe98d730..26e07df783b9e76ec7fa6fa4e932428ad9fa989d 100644 (file)
@@ -28,6 +28,5 @@ struct v9fs_dentry {
 };
 
 struct p9_fid *v9fs_fid_lookup(struct dentry *dentry);
-struct p9_fid *v9fs_fid_lookup_remove(struct dentry *dentry);
 struct p9_fid *v9fs_fid_clone(struct dentry *dentry);
 int v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid);
index f2a041cb508a146264c9230368fa15acdcf9050b..d979d958ea199c88dea062fa9fa6f797872fda6a 100644 (file)
@@ -796,6 +796,7 @@ struct p9_fcall *p9_create_twrite_u(u32 fid, u64 offset, u32 count,
        if (err) {
                kfree(fc);
                fc = ERR_PTR(err);
+               goto error;
        }
 
        if (buf_check_overflow(bufp)) {
index acb038810f3995c2b5c4b7e742d91e34c33d83bc..5d70558c4c6124065cc3f6371473dd67ed0a9db9 100644 (file)
@@ -288,9 +288,10 @@ struct p9_conn *p9_conn_create(struct p9_transport *trans, int msize,
        m->extended = extended;
        m->trans = trans;
        m->tagpool = p9_idpool_create();
-       if (!m->tagpool) {
+       if (IS_ERR(m->tagpool)) {
+               mtmp = ERR_PTR(-ENOMEM);
                kfree(m);
-               return ERR_PTR(PTR_ERR(m->tagpool));
+               return mtmp;
        }
 
        m->err = 0;
@@ -308,8 +309,10 @@ struct p9_conn *p9_conn_create(struct p9_transport *trans, int msize,
        memset(&m->poll_waddr, 0, sizeof(m->poll_waddr));
        m->poll_task = NULL;
        n = p9_mux_poll_start(m);
-       if (n)
+       if (n) {
+               kfree(m);
                return ERR_PTR(n);
+       }
 
        n = trans->poll(trans, &m->pt);
        if (n & POLLIN) {