mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
NFSv3: Clean up timespec encode
Simplify the struct iattr timestamp encoding by skipping the step of an intermediate struct timespec. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
@@ -456,9 +456,9 @@ static void zero_nfs_fh3(struct nfs_fh *fh)
|
|||||||
* uint32 nseconds;
|
* uint32 nseconds;
|
||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
static __be32 *xdr_encode_nfstime3(__be32 *p, const struct timespec *timep)
|
static __be32 *xdr_encode_nfstime3(__be32 *p, const struct timespec64 *timep)
|
||||||
{
|
{
|
||||||
*p++ = cpu_to_be32(timep->tv_sec);
|
*p++ = cpu_to_be32((u32)timep->tv_sec);
|
||||||
*p++ = cpu_to_be32(timep->tv_nsec);
|
*p++ = cpu_to_be32(timep->tv_nsec);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
@@ -533,7 +533,6 @@ static __be32 *xdr_decode_nfstime3(__be32 *p, struct timespec64 *timep)
|
|||||||
static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr,
|
static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr,
|
||||||
struct user_namespace *userns)
|
struct user_namespace *userns)
|
||||||
{
|
{
|
||||||
struct timespec ts;
|
|
||||||
u32 nbytes;
|
u32 nbytes;
|
||||||
__be32 *p;
|
__be32 *p;
|
||||||
|
|
||||||
@@ -583,10 +582,8 @@ static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr,
|
|||||||
*p++ = xdr_zero;
|
*p++ = xdr_zero;
|
||||||
|
|
||||||
if (attr->ia_valid & ATTR_ATIME_SET) {
|
if (attr->ia_valid & ATTR_ATIME_SET) {
|
||||||
struct timespec ts;
|
|
||||||
*p++ = xdr_two;
|
*p++ = xdr_two;
|
||||||
ts = timespec64_to_timespec(attr->ia_atime);
|
p = xdr_encode_nfstime3(p, &attr->ia_atime);
|
||||||
p = xdr_encode_nfstime3(p, &ts);
|
|
||||||
} else if (attr->ia_valid & ATTR_ATIME) {
|
} else if (attr->ia_valid & ATTR_ATIME) {
|
||||||
*p++ = xdr_one;
|
*p++ = xdr_one;
|
||||||
} else
|
} else
|
||||||
@@ -594,8 +591,7 @@ static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr,
|
|||||||
|
|
||||||
if (attr->ia_valid & ATTR_MTIME_SET) {
|
if (attr->ia_valid & ATTR_MTIME_SET) {
|
||||||
*p++ = xdr_two;
|
*p++ = xdr_two;
|
||||||
ts = timespec64_to_timespec(attr->ia_mtime);
|
xdr_encode_nfstime3(p, &attr->ia_mtime);
|
||||||
xdr_encode_nfstime3(p, &ts);
|
|
||||||
} else if (attr->ia_valid & ATTR_MTIME) {
|
} else if (attr->ia_valid & ATTR_MTIME) {
|
||||||
*p = xdr_one;
|
*p = xdr_one;
|
||||||
} else
|
} else
|
||||||
|
|||||||
@@ -869,7 +869,7 @@ struct nfs3_sattrargs {
|
|||||||
struct nfs_fh * fh;
|
struct nfs_fh * fh;
|
||||||
struct iattr * sattr;
|
struct iattr * sattr;
|
||||||
unsigned int guard;
|
unsigned int guard;
|
||||||
struct timespec guardtime;
|
struct timespec64 guardtime;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct nfs3_diropargs {
|
struct nfs3_diropargs {
|
||||||
|
|||||||
Reference in New Issue
Block a user