Commit 85e8ac71 authored by Linus Torvalds's avatar Linus Torvalds

Merge http://linux-isdn.bkbits.net/linux-2.5.make

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 55fabbb8 5092f154
...@@ -146,7 +146,7 @@ xdr_decode_time3(u32 *p, struct timespec *timep) ...@@ -146,7 +146,7 @@ xdr_decode_time3(u32 *p, struct timespec *timep)
static u32 * static u32 *
xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr) xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr)
{ {
unsigned int type; unsigned int type, major, minor;
int fmode; int fmode;
type = ntohl(*p++); type = ntohl(*p++);
...@@ -160,9 +160,12 @@ xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr) ...@@ -160,9 +160,12 @@ xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr)
fattr->gid = ntohl(*p++); fattr->gid = ntohl(*p++);
p = xdr_decode_hyper(p, &fattr->size); p = xdr_decode_hyper(p, &fattr->size);
p = xdr_decode_hyper(p, &fattr->du.nfs3.used); p = xdr_decode_hyper(p, &fattr->du.nfs3.used);
/* Turn remote device info into Linux-specific dev_t */ /* Turn remote device info into Linux-specific dev_t */
fattr->rdev = ntohl(*p++) << MINORBITS; major = ntohl(*p++);
fattr->rdev |= ntohl(*p++) & MINORMASK; minor = ntohl(*p++);
fattr->rdev = MKDEV(major, minor);
p = xdr_decode_hyper(p, &fattr->fsid_u.nfs3); p = xdr_decode_hyper(p, &fattr->fsid_u.nfs3);
p = xdr_decode_hyper(p, &fattr->fileid); p = xdr_decode_hyper(p, &fattr->fileid);
p = xdr_decode_time3(p, &fattr->atime); p = xdr_decode_time3(p, &fattr->atime);
...@@ -412,8 +415,8 @@ nfs3_xdr_mknodargs(struct rpc_rqst *req, u32 *p, struct nfs3_mknodargs *args) ...@@ -412,8 +415,8 @@ nfs3_xdr_mknodargs(struct rpc_rqst *req, u32 *p, struct nfs3_mknodargs *args)
*p++ = htonl(args->type); *p++ = htonl(args->type);
p = xdr_encode_sattr(p, args->sattr); p = xdr_encode_sattr(p, args->sattr);
if (args->type == NF3CHR || args->type == NF3BLK) { if (args->type == NF3CHR || args->type == NF3BLK) {
*p++ = htonl(args->rdev >> MINORBITS); *p++ = htonl(MAJOR(args->rdev));
*p++ = htonl(args->rdev & MINORMASK); *p++ = htonl(MINOR(args->rdev));
} }
req->rq_slen = xdr_adjust_iovec(req->rq_svec, p); req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
......
...@@ -1385,13 +1385,14 @@ decode_getattr(struct xdr_stream *xdr, struct nfs4_getattr *getattr) ...@@ -1385,13 +1385,14 @@ decode_getattr(struct xdr_stream *xdr, struct nfs4_getattr *getattr)
dprintk("read_attrs: gid=%d\n", (int)nfp->gid); dprintk("read_attrs: gid=%d\n", (int)nfp->gid);
} }
if (bmval1 & FATTR4_WORD1_RAWDEV) { if (bmval1 & FATTR4_WORD1_RAWDEV) {
READ_BUF(8); uint32_t major, minor;
len += 8;
READ32(dummy32); READ_BUF(8);
nfp->rdev = (dummy32 << MINORBITS); len += 8;
READ32(dummy32); READ32(major);
nfp->rdev |= (dummy32 & MINORMASK); READ32(minor);
dprintk("read_attrs: rdev=%d\n", nfp->rdev); nfp->rdev = MKDEV(major, minor);
dprintk("read_attrs: rdev=0x%x\n", nfp->rdev);
} }
if (bmval1 & FATTR4_WORD1_SPACE_AVAIL) { if (bmval1 & FATTR4_WORD1_SPACE_AVAIL) {
READ_BUF(8); READ_BUF(8);
......
...@@ -308,6 +308,7 @@ void daemonize(const char *name, ...) ...@@ -308,6 +308,7 @@ void daemonize(const char *name, ...)
va_start(args, name); va_start(args, name);
vsnprintf(current->comm, sizeof(current->comm), name, args); vsnprintf(current->comm, sizeof(current->comm), name, args);
va_end(args);
/* /*
* If we were started as result of loading a module, close all of the * If we were started as result of loading a module, close all of the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment