]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
* Apply upstream patch to allocate vnodes from the malloc pool rather
authorRuss Allbery <rra@debian.org>
Tue, 18 Dec 2007 00:39:45 +0000 (00:39 +0000)
committerRuss Allbery <rra@debian.org>
Tue, 18 Dec 2007 00:39:45 +0000 (00:39 +0000)
  than off the stack, fixing file server problems on SPARC.  Thanks to
  Barney Sowood for tracking down the patch.  (Closes: #448380)

debian/changelog
debian/patches/alloc-vnode [new file with mode: 0644]
debian/patches/series

index 5560f708295871c19159d80104ce177a85b8b5c9..5eb48ab7ee411c4a177a6b306ba8f5ed28b1e43c 100644 (file)
@@ -4,10 +4,13 @@ openafs (1.4.6.dfsg1-1) UNRELEASED; urgency=low
     - Fixes multiple serious problems with the file server.
   * Apply upstream patch for Linux 2.6.24 support.  Thanks to Anders
     Kaseorg for researching the necessary deltas.  (Closes: #456258)
+  * Apply upstream patch to allocate vnodes from the malloc pool rather
+    than off the stack, fixing file server problems on SPARC.  Thanks to
+    Barney Sowood for tracking down the patch.  (Closes: #448380)
   * Add more debugging and bug reporting instructions to README.Debian.
   * Update to standards version 3.7.3 (no changes required).
 
- -- Russ Allbery <rra@debian.org>  Mon, 17 Dec 2007 16:33:28 -0800
+ -- Russ Allbery <rra@debian.org>  Mon, 17 Dec 2007 16:42:41 -0800
 
 openafs (1.4.5.dfsg1-1) unstable; urgency=low
 
diff --git a/debian/patches/alloc-vnode b/debian/patches/alloc-vnode
new file mode 100644 (file)
index 0000000..9c4d535
--- /dev/null
@@ -0,0 +1,34 @@
+Allocate vnodes rather than using the stack, which fixes file server
+problems on SPARC.  Upstream delta:
+
+STABLE14-volprocs-alloc-vnode-instead-of-using-stack-20071126
+
+Debian Bug#448380
+
+--- openafs.orig/src/volser/volprocs.c
++++ openafs/src/volser/volprocs.c
+@@ -210,14 +210,14 @@
+     struct acl_accessList *ACL;
+     ViceFid did;
+     Inode inodeNumber, nearInode;
+-    char buf[SIZEOF_LARGEDISKVNODE];
+-    struct VnodeDiskObject *vnode = (struct VnodeDiskObject *)buf;
++    struct VnodeDiskObject *vnode;
+     struct VnodeClassInfo *vcp = &VnodeClassInfo[vLarge];
+     IHandle_t *h;
+     FdHandle_t *fdP;
+     int code;
+     afs_fsize_t length;
++    vnode = (struct VnodeDiskObject *)malloc(SIZEOF_LARGEDISKVNODE);
+     memset(vnode, 0, SIZEOF_LARGEDISKVNODE);
+     V_pref(vp, nearInode);
+@@ -282,6 +282,7 @@
+     VNDISK_GET_LEN(length, vnode);
+     V_diskused(vp) = nBlocks(length);
++    free(vnode);
+     return 1;
+ }
index ea404a094bcd143a96594740241d7aea593a1e7a..56433e367d6a7a4e70e7f687c50b6634b4a4cae2 100644 (file)
@@ -11,3 +11,4 @@ find-core-files
 ktc-prototypes
 afs-man-name
 linux-2.6.24
+alloc-vnode