OSDN Git Service

staging: erofs: locked before registering for all new workgroups
authorGao Xiang <gaoxiang25@huawei.com>
Thu, 22 Nov 2018 17:21:47 +0000 (01:21 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Nov 2018 09:53:08 +0000 (10:53 +0100)
commit23edf3abe7abb1d1ab856c893629b96209473a5b
tree25d6645efaf8df941d49abeaa72311755b80ca85
parent48d4bf3b05a683539a43faa02c6f3091c715c9cc
staging: erofs: locked before registering for all new workgroups

Let's make sure that the one registering a workgroup will also
take the primary work lock at first for two reasons:
  1) There's no need to introduce such a race window (and consequently
     overhead) between registering and locking, other tasks could break
     in by chance, and the race seems unnecessary (no benefit at all);

  2) It's better to take the primary work when a workgroup
     is registered to apply the cache managed policy, for example,
     if some other tasks break in, it could turn into the in-place
     decompression rather than use as the cached decompression.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/erofs/unzip_vle.c