From 2bcb4f99840a875e5b992d3200262fbbaca5812c Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Tue, 18 Dec 2007 00:39:45 +0000 Subject: [PATCH] * 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) --- debian/changelog | 5 ++++- debian/patches/alloc-vnode | 34 ++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 debian/patches/alloc-vnode diff --git a/debian/changelog b/debian/changelog index 5560f7082..5eb48ab7e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Mon, 17 Dec 2007 16:33:28 -0800 + -- Russ Allbery 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 index 000000000..9c4d535c3 --- /dev/null +++ b/debian/patches/alloc-vnode @@ -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; + } + diff --git a/debian/patches/series b/debian/patches/series index ea404a094..56433e367 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -11,3 +11,4 @@ find-core-files ktc-prototypes afs-man-name linux-2.6.24 +alloc-vnode -- 2.39.5