• NeilBrown's avatar
    locks: fix error in locks_move_blocks() · bf77ae4c
    NeilBrown authored
    After moving all requests from
       fl->fl_blocked_requests
    to
       new->fl_blocked_requests
    
    it is nonsensical to do anything to all the remaining elements, there
    aren't any.  This should do something to all the requests that have been
    moved. For simplicity, it does it to all requests in the target list.
    
    Setting "f->fl_blocker = new" to all members of new->fl_blocked_requests
    is "obviously correct" as it preserves the invariant of the linkage
    among requests.
    
    Reported-by: syzbot+239d99847eb49ecb3899@syzkaller.appspotmail.com
    Fixes: 5946c431 ("fs/locks: allow a lock request to block other requests.")
    Signed-off-by: 's avatarNeilBrown <neilb@suse.com>
    Signed-off-by: 's avatarJeff Layton <jlayton@kernel.org>
    bf77ae4c
locks.c 77.3 KB