diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/nfsd/nfsfh.h | 42 | ||||
-rw-r--r-- | include/linux/nfsd/xdr4.h | 4 |
2 files changed, 6 insertions, 40 deletions
diff --git a/include/linux/nfsd/nfsfh.h b/include/linux/nfsd/nfsfh.h index 11e568ee0eeb..d1941cb965e9 100644 --- a/include/linux/nfsd/nfsfh.h +++ b/include/linux/nfsd/nfsfh.h | |||
@@ -150,17 +150,7 @@ typedef struct svc_fh { | |||
150 | struct timespec fh_pre_ctime; /* ctime before oper */ | 150 | struct timespec fh_pre_ctime; /* ctime before oper */ |
151 | 151 | ||
152 | /* Post-op attributes saved in fh_unlock */ | 152 | /* Post-op attributes saved in fh_unlock */ |
153 | umode_t fh_post_mode; /* i_mode */ | 153 | struct kstat fh_post_attr; /* full attrs after operation */ |
154 | nlink_t fh_post_nlink; /* i_nlink */ | ||
155 | uid_t fh_post_uid; /* i_uid */ | ||
156 | gid_t fh_post_gid; /* i_gid */ | ||
157 | __u64 fh_post_size; /* i_size */ | ||
158 | unsigned long fh_post_blocks; /* i_blocks */ | ||
159 | unsigned long fh_post_blksize;/* i_blksize */ | ||
160 | __be32 fh_post_rdev[2];/* i_rdev */ | ||
161 | struct timespec fh_post_atime; /* i_atime */ | ||
162 | struct timespec fh_post_mtime; /* i_mtime */ | ||
163 | struct timespec fh_post_ctime; /* i_ctime */ | ||
164 | #endif /* CONFIG_NFSD_V3 */ | 154 | #endif /* CONFIG_NFSD_V3 */ |
165 | 155 | ||
166 | } svc_fh; | 156 | } svc_fh; |
@@ -297,36 +287,12 @@ fill_pre_wcc(struct svc_fh *fhp) | |||
297 | if (!fhp->fh_pre_saved) { | 287 | if (!fhp->fh_pre_saved) { |
298 | fhp->fh_pre_mtime = inode->i_mtime; | 288 | fhp->fh_pre_mtime = inode->i_mtime; |
299 | fhp->fh_pre_ctime = inode->i_ctime; | 289 | fhp->fh_pre_ctime = inode->i_ctime; |
300 | fhp->fh_pre_size = inode->i_size; | 290 | fhp->fh_pre_size = inode->i_size; |
301 | fhp->fh_pre_saved = 1; | 291 | fhp->fh_pre_saved = 1; |
302 | } | 292 | } |
303 | } | 293 | } |
304 | 294 | ||
305 | /* | 295 | extern void fill_post_wcc(struct svc_fh *); |
306 | * Fill in the post_op attr for the wcc data | ||
307 | */ | ||
308 | static inline void | ||
309 | fill_post_wcc(struct svc_fh *fhp) | ||
310 | { | ||
311 | struct inode *inode = fhp->fh_dentry->d_inode; | ||
312 | |||
313 | if (fhp->fh_post_saved) | ||
314 | printk("nfsd: inode locked twice during operation.\n"); | ||
315 | |||
316 | fhp->fh_post_mode = inode->i_mode; | ||
317 | fhp->fh_post_nlink = inode->i_nlink; | ||
318 | fhp->fh_post_uid = inode->i_uid; | ||
319 | fhp->fh_post_gid = inode->i_gid; | ||
320 | fhp->fh_post_size = inode->i_size; | ||
321 | fhp->fh_post_blksize = BLOCK_SIZE; | ||
322 | fhp->fh_post_blocks = inode->i_blocks; | ||
323 | fhp->fh_post_rdev[0] = htonl((u32)imajor(inode)); | ||
324 | fhp->fh_post_rdev[1] = htonl((u32)iminor(inode)); | ||
325 | fhp->fh_post_atime = inode->i_atime; | ||
326 | fhp->fh_post_mtime = inode->i_mtime; | ||
327 | fhp->fh_post_ctime = inode->i_ctime; | ||
328 | fhp->fh_post_saved = 1; | ||
329 | } | ||
330 | #else | 296 | #else |
331 | #define fill_pre_wcc(ignored) | 297 | #define fill_pre_wcc(ignored) |
332 | #define fill_post_wcc(notused) | 298 | #define fill_post_wcc(notused) |
diff --git a/include/linux/nfsd/xdr4.h b/include/linux/nfsd/xdr4.h index 1b653267133a..b0ddfb41c790 100644 --- a/include/linux/nfsd/xdr4.h +++ b/include/linux/nfsd/xdr4.h | |||
@@ -428,8 +428,8 @@ set_change_info(struct nfsd4_change_info *cinfo, struct svc_fh *fhp) | |||
428 | cinfo->atomic = 1; | 428 | cinfo->atomic = 1; |
429 | cinfo->before_ctime_sec = fhp->fh_pre_ctime.tv_sec; | 429 | cinfo->before_ctime_sec = fhp->fh_pre_ctime.tv_sec; |
430 | cinfo->before_ctime_nsec = fhp->fh_pre_ctime.tv_nsec; | 430 | cinfo->before_ctime_nsec = fhp->fh_pre_ctime.tv_nsec; |
431 | cinfo->after_ctime_sec = fhp->fh_post_ctime.tv_sec; | 431 | cinfo->after_ctime_sec = fhp->fh_post_attr.ctime.tv_sec; |
432 | cinfo->after_ctime_nsec = fhp->fh_post_ctime.tv_nsec; | 432 | cinfo->after_ctime_nsec = fhp->fh_post_attr.ctime.tv_nsec; |
433 | } | 433 | } |
434 | 434 | ||
435 | int nfs4svc_encode_voidres(struct svc_rqst *, __be32 *, void *); | 435 | int nfs4svc_encode_voidres(struct svc_rqst *, __be32 *, void *); |