Merge pull request #69 from plieven/for-1.9.3

nfs_{pread,pwrite}_async: fix oom handling and comments
libnfs-4.0.0-vitalif
Ronnie Sahlberg 2014-03-18 12:30:40 -07:00
commit c44c3ff364
1 changed files with 6 additions and 4 deletions

View File

@ -1664,8 +1664,7 @@ int nfs_pread_async(struct nfs_context *nfs, struct nfsfh *nfsfh, uint64_t offse
assert(data->num_calls == 0); assert(data->num_calls == 0);
/* trying to read more than maximum server read size, we has to chop it up into smaller /* chop requests into chunks of at most READMAX bytes if necessary.
* reads and collect into a reassembly buffer.
* we send all reads in parallel so that performance is still good. * we send all reads in parallel so that performance is still good.
*/ */
data->max_offset = offset; data->max_offset = offset;
@ -1688,6 +1687,7 @@ int nfs_pread_async(struct nfs_context *nfs, struct nfsfh *nfsfh, uint64_t offse
return -1; return -1;
} }
data->oom = 1; data->oom = 1;
break;
} }
memset(mdata, 0, sizeof(struct nfs_mcb_data)); memset(mdata, 0, sizeof(struct nfs_mcb_data));
mdata->data = data; mdata->data = data;
@ -1704,6 +1704,7 @@ int nfs_pread_async(struct nfs_context *nfs, struct nfsfh *nfsfh, uint64_t offse
return -1; return -1;
} }
data->oom = 1; data->oom = 1;
break;
} }
count -= readcount; count -= readcount;
@ -1843,8 +1844,7 @@ int nfs_pwrite_async(struct nfs_context *nfs, struct nfsfh *nfsfh, uint64_t offs
/* hello, clang-analyzer */ /* hello, clang-analyzer */
assert(data->num_calls == 0); assert(data->num_calls == 0);
/* trying to write more than maximum server write size, we has to chop it up into smaller /* chop requests into chunks of at most WRITEMAX bytes if necessary.
* chunks.
* we send all writes in parallel so that performance is still good. * we send all writes in parallel so that performance is still good.
*/ */
data->max_offset = offset; data->max_offset = offset;
@ -1867,6 +1867,7 @@ int nfs_pwrite_async(struct nfs_context *nfs, struct nfsfh *nfsfh, uint64_t offs
return -1; return -1;
} }
data->oom = 1; data->oom = 1;
break;
} }
memset(mdata, 0, sizeof(struct nfs_mcb_data)); memset(mdata, 0, sizeof(struct nfs_mcb_data));
mdata->data = data; mdata->data = data;
@ -1883,6 +1884,7 @@ int nfs_pwrite_async(struct nfs_context *nfs, struct nfsfh *nfsfh, uint64_t offs
return -1; return -1;
} }
data->oom = 1; data->oom = 1;
break;
} }
count -= writecount; count -= writecount;