result.status = NFS3ERR_NOTSUPP;
+ BlueSkyInode *inode = lookup_fh(req, &argp->file);
+ if (inode == NULL) {
+ result.status = NFS3ERR_STALE;
+ async_rpc_send_reply(req, &result);
+ return;
+ }
+
+ g_mutex_lock(inode->lock);
+ encode_pre_wcc(&result.commit3res_u.resok.file_wcc, inode);
+
+ bluesky_inode_do_sync(inode);
+
+ result.commit3res_u.resok.file_wcc.after.present = TRUE;
+ encode_fattr3(&result.commit3res_u.resok.file_wcc.after.post_op_attr_u.attributes, inode);
+
+ g_mutex_unlock(inode->lock);
+
async_rpc_send_reply(req, &result);
}