Re: struct nfs_fattr alignment problem in nfs3proc.c

From: Richard Curnow (Richard.Curnow@superh.com)
Date: Mon Mar 24 2003 - 08:49:27 EST


* Richard Curnow <Richard.Curnow@superh.com> [2003-03-24]:
> + struct unlinkxdr {
> + struct nfs3_diropargs *arg;
> + struct nfs_fattr *res;
> + } *ptr;

Sorry, those asterisks are not good. Instead:

--- ../linux-2.4/fs/nfs/nfs3proc.c Fri Jan 3 15:01:17 2003
+++ fs/nfs/nfs3proc.c Mon Mar 24 13:06:36 2003
@@ -294,25 +294,36 @@
         nfs_refresh_inode(dir, &dir_attr);
         dprintk("NFS reply remove: %d\n", status);
         return status;
 }
 
 static int
 nfs3_proc_unlink_setup(struct rpc_message *msg, struct dentry *dir, struct qstr *name)
 {
         struct nfs3_diropargs *arg;
         struct nfs_fattr *res;
+ struct unlinkxdr {
+ struct nfs3_diropargs arg;
+ struct nfs_fattr res;
+ } *ptr;
 
- arg = (struct nfs3_diropargs *)kmalloc(sizeof(*arg)+sizeof(*res), GFP_KERNEL);
- if (!arg)
+ ptr = (struct unlinkxdr *) kmalloc(sizeof(struct unlinkxdr), GFP_KERNEL);
+ if (!ptr)
                 return -ENOMEM;
- res = (struct nfs_fattr*)(arg + 1);
+ arg = &ptr->arg;
+ res = &ptr->res;
+ if (((unsigned long) arg & 0x7) != 0) {
+ printk("nfs3_proc_unlink_setup : arg not 8-byte aligned!\n");
+ }
+ if (((unsigned long) res & 0x7) != 0) {
+ printk("nfs3_proc_unlink_setup : res not 8-byte aligned!\n");
+ }
         arg->fh = NFS_FH(dir->d_inode);
         arg->name = name->name;
         arg->len = name->len;
         res->valid = 0;
         msg->rpc_proc = NFS3PROC_REMOVE;
         msg->rpc_argp = arg;
         msg->rpc_resp = res;
         return 0;
 }

-- 
Richard \\\ SuperH Core+Debug Architect /// .. At home ..
  P.    /// richard.curnow@superh.com  ///  rc@rc0.org.uk
Curnow  \\\ http://www.superh.com/    ///  www.rc0.org.uk
Speaking for myself, not on behalf of SuperH
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Mar 31 2003 - 22:00:15 EST