[OpenAFS-devel] Re: [OpenAFS] Re: linux sparc64 volserver crashes (w/ gcc 4.1.2)
Derrick Brashear
shadow@gmail.com
Sun, 4 Nov 2007 00:58:31 -0400
------=_Part_19683_20820672.1194152311115
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Moving to -devel.
On 11/4/07, Adam Megacz <megacz@cs.berkeley.edu> wrote:
>
>
> "Derrick Brashear" <shadow@gmail.com> writes:
> > in my source that's
> > vnode->dataVersion = 1;
> > (on line 257)
> >
> > What's it in yours?
>
> Same.
Able to try this (with gcc 4.12 or whatever)?
--- volprocs.c 30 Oct 2007 15:24:12 -0000 1.34.2.10
+++ src/vol/volprocs.c 4 Nov 2007 04:57:08 -0000
@@ -203,14 +203,14 @@
struct acl_accessList *ACL;
ViceFid did;
Inode inodeNumber, nearInode;
- char buf[SIZEOF_LARGEDISKVNODE];
- struct VnodeDiskObject *vnode = (struct VnodeDiskObject *)buf;
+ /*char buf[SIZEOF_LARGEDISKVNODE];*/
+ struct VnodeDiskObject *vnode/* = (struct VnodeDiskObject *)buf*/;
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);
@@ -274,7 +274,7 @@
IH_RELEASE(h);
VNDISK_GET_LEN(length, vnode);
V_diskused(vp) = nBlocks(length);
-
+ free(vnode);
return 1;
}
------=_Part_19683_20820672.1194152311115
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Moving to -devel.<br><br><div><span class="gmail_quote">On 11/4/07, <b class="gmail_sendername">Adam Megacz</b> <<a href="mailto:megacz@cs.berkeley.edu">megacz@cs.berkeley.edu</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>"Derrick Brashear" <<a href="mailto:shadow@gmail.com">shadow@gmail.com</a>> writes:<br>> in my source that's<br>> vnode->dataVersion = 1;<br>> (on line 257)<br>><br>> What's it in yours?
<br><br>Same.</blockquote><div><br>Able to try this (with gcc 4.12 or whatever)?<br><br>--- volprocs.c 30 Oct 2007 15:24:12 -0000 <a href="http://1.34.2.10">1.34.2.10</a><br>+++ src/vol/volprocs.c 4 Nov 2007 04:57:08 -0000
<br>@@ -203,14 +203,14 @@<br> struct acl_accessList *ACL;<br> ViceFid did;<br> Inode inodeNumber, nearInode;<br>- char buf[SIZEOF_LARGEDISKVNODE];<br>- struct VnodeDiskObject *vnode = (struct VnodeDiskObject *)buf;
<br>+ /*char buf[SIZEOF_LARGEDISKVNODE];*/<br>+ struct VnodeDiskObject *vnode/* = (struct VnodeDiskObject *)buf*/;<br> struct VnodeClassInfo *vcp = &VnodeClassInfo[vLarge];<br> IHandle_t *h;<br> FdHandle_t *fdP;
<br> int code;<br> afs_fsize_t length;<br>-<br>+ vnode = (struct VnodeDiskObject *)malloc(SIZEOF_LARGEDISKVNODE);<br> memset(vnode, 0, SIZEOF_LARGEDISKVNODE);<br> <br> V_pref(vp, nearInode);<br>@@ -274,7 +274,7 @@
<br> IH_RELEASE(h);<br> VNDISK_GET_LEN(length, vnode);<br> V_diskused(vp) = nBlocks(length);<br>-<br>+ free(vnode);<br> return 1;<br> }<br> <br> </div><br></div><br>
------=_Part_19683_20820672.1194152311115--