]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/nfsd/nfs4proc.c
Merge branch 'sg' of git://git.kernel.dk/linux-2.6-block
[linux-2.6-omap-h63xx.git] / fs / nfsd / nfs4proc.c
index 3c627128e205939244cd42f49cc8cc4f1cedd2c8..18ead1790bb388461b08d42e3e5fcc5c1d1807cd 100644 (file)
@@ -100,7 +100,15 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_o
                status = nfsd_create_v3(rqstp, current_fh, open->op_fname.data,
                                        open->op_fname.len, &open->op_iattr,
                                        &resfh, open->op_createmode,
-                                       (u32 *)open->op_verf.data, &open->op_truncate, &created);
+                                       (u32 *)open->op_verf.data,
+                                       &open->op_truncate, &created);
+
+               /* If we ever decide to use different attrs to store the
+                * verifier in nfsd_create_v3, then we'll need to change this
+                */
+               if (open->op_createmode == NFS4_CREATE_EXCLUSIVE && status == 0)
+                       open->op_bmval[1] |= (FATTR4_WORD1_TIME_ACCESS |
+                                               FATTR4_WORD1_TIME_MODIFY);
        } else {
                status = nfsd_lookup(rqstp, current_fh,
                                     open->op_fname.data, open->op_fname.len, &resfh);
@@ -230,12 +238,12 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
                        break;
                case NFS4_OPEN_CLAIM_DELEGATE_PREV:
                        open->op_stateowner->so_confirmed = 1;
-                       printk("NFSD: unsupported OPEN claim type %d\n",
+                       dprintk("NFSD: unsupported OPEN claim type %d\n",
                                open->op_claim_type);
                        status = nfserr_notsupp;
                        goto out;
                default:
-                       printk("NFSD: Invalid OPEN claim type %d\n",
+                       dprintk("NFSD: Invalid OPEN claim type %d\n",
                                open->op_claim_type);
                        status = nfserr_inval;
                        goto out;