lightnvm: fix request intersection locking in rrpc
This patch fixes an error on the calculation of intersecting logical addresses; it contemplates the case where a new request including several addresses intersects with a single locked address. This case is typical when multiple pages are sent in a new request, while GC - which at the moment sends one address at the time - is running. Signed-off-by: Javier González <javier@cnexlabs.com> Signed-off-by: Matias Bjørling <m@bjorling.me> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
Родитель
bba7f40a02
Коммит
3704e098cc
|
@ -174,8 +174,7 @@ static inline sector_t rrpc_get_sector(sector_t laddr)
|
|||
static inline int request_intersects(struct rrpc_inflight_rq *r,
|
||||
sector_t laddr_start, sector_t laddr_end)
|
||||
{
|
||||
return (laddr_end >= r->l_start && laddr_end <= r->l_end) &&
|
||||
(laddr_start >= r->l_start && laddr_start <= r->l_end);
|
||||
return (laddr_end >= r->l_start) && (laddr_start <= r->l_end);
|
||||
}
|
||||
|
||||
static int __rrpc_lock_laddr(struct rrpc *rrpc, sector_t laddr,
|
||||
|
|
Загрузка…
Ссылка в новой задаче