write-behind: fix 'option enable-trickling-writes'
fix logic in __wb_mark_winds to properly initialize incomplete_writes and conditionally check based on enable_trickling_writes flag Signed-off-by: Anand V. Avati <avati@amp.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 547 (write-behind enable-trickling-writes working?) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=547
This commit is contained in:
parent
899b89a8c2
commit
bc111de015
@ -1446,9 +1446,8 @@ __wb_mark_winds (list_head_t *list, list_head_t *winds, size_t aggregate_conf,
|
||||
{
|
||||
size_t size = 0;
|
||||
char other_fop_in_queue = 0;
|
||||
char incomplete_writes = 1;
|
||||
char incomplete_writes = 0;
|
||||
char non_contiguous_writes = 0;
|
||||
char *trickling_writes = NULL;
|
||||
wb_request_t *request = NULL;
|
||||
wb_file_t *file = NULL;
|
||||
|
||||
@ -1460,15 +1459,12 @@ __wb_mark_winds (list_head_t *list, list_head_t *winds, size_t aggregate_conf,
|
||||
file = request->file;
|
||||
|
||||
if (!wind_all && (file->aggregate_current < aggregate_conf)) {
|
||||
if (enable_trickling_writes) {
|
||||
trickling_writes = &incomplete_writes;
|
||||
}
|
||||
|
||||
__wb_can_wind (list, &other_fop_in_queue,
|
||||
&non_contiguous_writes, trickling_writes);
|
||||
&non_contiguous_writes, &incomplete_writes);
|
||||
}
|
||||
|
||||
if ((!incomplete_writes) || (wind_all) || (non_contiguous_writes)
|
||||
if ((enable_trickling_writes && !incomplete_writes)
|
||||
|| (wind_all) || (non_contiguous_writes)
|
||||
|| (other_fop_in_queue)
|
||||
|| (file->aggregate_current >= aggregate_conf)) {
|
||||
size = __wb_mark_wind_all (file, list, winds);
|
||||
|
Loading…
x
Reference in New Issue
Block a user