/* Encode post-operation attributes. The inode may be NULL if the call failed because of a stale file handle. In this case, no attributes are returned.  */
static __be32* encode_post_op_attr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp)
/* Encode post-operation attributes. The inode may be NULL if the call failed because of a stale file handle. In this case, no attributes are returned.  */
static __be32* encode_post_op_attr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp)
{
	struct dentry *dentry = fhp->fh_dentry;
	if (dentry && dentry->d_inode) {
	        int err;
		struct kstat stat;
		err = vfs_getattr(fhp->fh_export->ex_path.mnt, dentry, &stat);
		if (!err) {
			*p++ = xdr_one;
			lease_get_mtime(dentry->d_inode, &stat.mtime);
			return encode_fattr3(rqstp, p, fhp, &stat);
		}
	}
	*p++ = xdr_zero;
	return p;
}