• majianpeng's avatar
    md/raid5: For odirect-write performance, do not set STRIPE_PREREAD_ACTIVE. · 895e3c5c
    majianpeng authored
    'sync' writes set both REQ_SYNC and REQ_NOIDLE.
    O_DIRECT writes set REQ_SYNC but not REQ_NOIDLE.
    
    We currently assume that a REQ_SYNC request will not be followed by
    more requests and so set STRIPE_PREREAD_ACTIVE to expedite the
    request.
    This is appropriate for sync requests, but not for O_DIRECT requests.
    
    So make the setting of STRIPE_PREREAD_ACTIVE conditional on REQ_NOIDLE
    rather than REQ_SYNC.  This is consistent with the documented meaning
    of REQ_NOIDLE:
    
            __REQ_NOIDLE,           /* don't anticipate more IO after this one */
    Signed-off-by: default avatarJianpeng Ma <majianpeng@gmail.com>
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    895e3c5c
raid5.c 172 KB