Previously, during foreground GC, if victims contain data of pinned file,
it will fail migration of the data, and meanwhile i_gc_failures of that
pinned file may increase, and when it exceeds threshold, GC will unpin
the file, result in breaking pinfile's semantics.
In order to mitigate such condition, let's record and skip section which
has pinned file's data and give priority to select unpinned one.
Bug: 279387798
Signed-off-by: Chao Yu <chao.yu@oppo.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit bf123c9ddf34b3b6d0bb9b46f64478daf01b4f1f)
[drosen: Resolved trivial conflict in fs/f2fs/gc.c ]
Change-Id: Id18929506ff9ecadd48ae48f6734205a65af0bd8