* [PATCH] f2fs: avoid swapon failure by giving a warning first @ 2021-05-11 21:43 ` Jaegeuk Kim 0 siblings, 0 replies; 10+ messages in thread From: Jaegeuk Kim @ 2021-05-11 21:43 UTC (permalink / raw) To: linux-kernel, linux-f2fs-devel; +Cc: Jaegeuk Kim, kernel test robot The final solution can be migrating blocks to form a section-aligned file internally. Meanwhile, let's ask users to do that when preparing the swap file initially like: 1) create() 2) ioctl(F2FS_IOC_SET_PIN_FILE) 3) fallocate() Reported-by: kernel test robot <oliver.sang@intel.com> Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned") Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> --- fs/f2fs/data.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 33e56ae84e35..041f2d9ec972 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -3833,9 +3833,13 @@ static int f2fs_is_file_aligned(struct inode *inode) if ((pblock - main_blkaddr) & (blocks_per_sec - 1) || nr_pblocks & (blocks_per_sec - 1)) { - f2fs_err(sbi, "Swapfile does not align to section"); - ret = -EINVAL; - goto out; + if (f2fs_is_pinned_file(inode)) { + f2fs_err(sbi, "Swapfile does not align to section"); + ret = -EINVAL; + goto out; + } + f2fs_warn(sbi, "Swapfile does not align to section: \n" + "\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()"); } cur_lblock += nr_pblocks; -- 2.31.1.607.g51e8a6a459-goog ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [f2fs-dev] [PATCH] f2fs: avoid swapon failure by giving a warning first @ 2021-05-11 21:43 ` Jaegeuk Kim 0 siblings, 0 replies; 10+ messages in thread From: Jaegeuk Kim @ 2021-05-11 21:43 UTC (permalink / raw) To: linux-kernel, linux-f2fs-devel; +Cc: Jaegeuk Kim, kernel test robot The final solution can be migrating blocks to form a section-aligned file internally. Meanwhile, let's ask users to do that when preparing the swap file initially like: 1) create() 2) ioctl(F2FS_IOC_SET_PIN_FILE) 3) fallocate() Reported-by: kernel test robot <oliver.sang@intel.com> Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned") Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> --- fs/f2fs/data.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 33e56ae84e35..041f2d9ec972 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -3833,9 +3833,13 @@ static int f2fs_is_file_aligned(struct inode *inode) if ((pblock - main_blkaddr) & (blocks_per_sec - 1) || nr_pblocks & (blocks_per_sec - 1)) { - f2fs_err(sbi, "Swapfile does not align to section"); - ret = -EINVAL; - goto out; + if (f2fs_is_pinned_file(inode)) { + f2fs_err(sbi, "Swapfile does not align to section"); + ret = -EINVAL; + goto out; + } + f2fs_warn(sbi, "Swapfile does not align to section: \n" + "\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()"); } cur_lblock += nr_pblocks; -- 2.31.1.607.g51e8a6a459-goog _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [f2fs-dev] [PATCH] f2fs: avoid swapon failure by giving a warning first 2021-05-11 21:43 ` [f2fs-dev] " Jaegeuk Kim @ 2021-05-12 1:28 ` Chao Yu -1 siblings, 0 replies; 10+ messages in thread From: Chao Yu @ 2021-05-12 1:28 UTC (permalink / raw) To: Jaegeuk Kim, linux-kernel, linux-f2fs-devel; +Cc: kernel test robot On 2021/5/12 5:43, Jaegeuk Kim wrote: > The final solution can be migrating blocks to form a section-aligned file > internally. Meanwhile, let's ask users to do that when preparing the swap > file initially like: > 1) create() > 2) ioctl(F2FS_IOC_SET_PIN_FILE) > 3) fallocate() Let me take a look how to migrate unaligned swapfile during swapon(). :) > > Reported-by: kernel test robot <oliver.sang@intel.com> > Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned") > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Reviewed-by: Chao Yu <yuchao0@huawei.com> Thanks, ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [f2fs-dev] [PATCH] f2fs: avoid swapon failure by giving a warning first @ 2021-05-12 1:28 ` Chao Yu 0 siblings, 0 replies; 10+ messages in thread From: Chao Yu @ 2021-05-12 1:28 UTC (permalink / raw) To: Jaegeuk Kim, linux-kernel, linux-f2fs-devel; +Cc: kernel test robot On 2021/5/12 5:43, Jaegeuk Kim wrote: > The final solution can be migrating blocks to form a section-aligned file > internally. Meanwhile, let's ask users to do that when preparing the swap > file initially like: > 1) create() > 2) ioctl(F2FS_IOC_SET_PIN_FILE) > 3) fallocate() Let me take a look how to migrate unaligned swapfile during swapon(). :) > > Reported-by: kernel test robot <oliver.sang@intel.com> > Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned") > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Reviewed-by: Chao Yu <yuchao0@huawei.com> Thanks, _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [f2fs-dev] [PATCH] f2fs: avoid swapon failure by giving a warning first 2021-05-12 1:28 ` Chao Yu @ 2021-05-12 3:10 ` Chao Yu -1 siblings, 0 replies; 10+ messages in thread From: Chao Yu @ 2021-05-12 3:10 UTC (permalink / raw) To: Jaegeuk Kim, linux-kernel, linux-f2fs-devel; +Cc: kernel test robot On 2021/5/12 9:28, Chao Yu wrote: > On 2021/5/12 5:43, Jaegeuk Kim wrote: >> The final solution can be migrating blocks to form a section-aligned file >> internally. Meanwhile, let's ask users to do that when preparing the swap >> file initially like: >> 1) create() >> 2) ioctl(F2FS_IOC_SET_PIN_FILE) >> 3) fallocate() > > Let me take a look how to migrate unaligned swapfile during swapon(). :) > >> >> Reported-by: kernel test robot <oliver.sang@intel.com> >> Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned") >> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > > Reviewed-by: Chao Yu <yuchao0@huawei.com> Wait, shouldn't this cover check_swap_activate_fast() as well? Thanks, > > Thanks, > > > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel > . > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [f2fs-dev] [PATCH] f2fs: avoid swapon failure by giving a warning first @ 2021-05-12 3:10 ` Chao Yu 0 siblings, 0 replies; 10+ messages in thread From: Chao Yu @ 2021-05-12 3:10 UTC (permalink / raw) To: Jaegeuk Kim, linux-kernel, linux-f2fs-devel; +Cc: kernel test robot On 2021/5/12 9:28, Chao Yu wrote: > On 2021/5/12 5:43, Jaegeuk Kim wrote: >> The final solution can be migrating blocks to form a section-aligned file >> internally. Meanwhile, let's ask users to do that when preparing the swap >> file initially like: >> 1) create() >> 2) ioctl(F2FS_IOC_SET_PIN_FILE) >> 3) fallocate() > > Let me take a look how to migrate unaligned swapfile during swapon(). :) > >> >> Reported-by: kernel test robot <oliver.sang@intel.com> >> Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned") >> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > > Reviewed-by: Chao Yu <yuchao0@huawei.com> Wait, shouldn't this cover check_swap_activate_fast() as well? Thanks, > > Thanks, > > > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel > . > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] f2fs: avoid swapon failure by giving a warning first 2021-05-11 21:43 ` [f2fs-dev] " Jaegeuk Kim @ 2021-05-12 4:00 ` Jaegeuk Kim -1 siblings, 0 replies; 10+ messages in thread From: Jaegeuk Kim @ 2021-05-12 4:00 UTC (permalink / raw) To: linux-kernel, linux-f2fs-devel; +Cc: kernel test robot The final solution can be migrating blocks to form a section-aligned file internally. Meanwhile, let's ask users to do that when preparing the swap file initially like: 1) create() 2) ioctl(F2FS_IOC_SET_PIN_FILE) 3) fallocate() Reported-by: kernel test robot <oliver.sang@intel.com> Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned") Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> --- v2: - fix to warn out once - cover check_swap_activate_fast fs/f2fs/data.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 33e56ae84e35..41e260680b27 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -3801,6 +3801,7 @@ static int f2fs_is_file_aligned(struct inode *inode) block_t pblock; unsigned long nr_pblocks; unsigned int blocks_per_sec = BLKS_PER_SEC(sbi); + unsigned int not_aligned = 0; int ret = 0; cur_lblock = 0; @@ -3833,13 +3834,20 @@ static int f2fs_is_file_aligned(struct inode *inode) if ((pblock - main_blkaddr) & (blocks_per_sec - 1) || nr_pblocks & (blocks_per_sec - 1)) { - f2fs_err(sbi, "Swapfile does not align to section"); - ret = -EINVAL; - goto out; + if (f2fs_is_pinned_file(inode)) { + f2fs_err(sbi, "Swapfile does not align to section"); + ret = -EINVAL; + goto out; + } + not_aligned++; } cur_lblock += nr_pblocks; } + if (not_aligned) + f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n" + "\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()", + not_aligned); out: return ret; } @@ -3858,6 +3866,7 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, int nr_extents = 0; unsigned long nr_pblocks; unsigned int blocks_per_sec = BLKS_PER_SEC(sbi); + unsigned int not_aligned = 0; int ret = 0; /* @@ -3896,9 +3905,12 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, if ((pblock - SM_I(sbi)->main_blkaddr) & (blocks_per_sec - 1) || nr_pblocks & (blocks_per_sec - 1)) { - f2fs_err(sbi, "Swapfile does not align to section"); - ret = -EINVAL; - goto out; + if (f2fs_is_pinned_file(inode)) { + f2fs_err(sbi, "Swapfile does not align to section"); + ret = -EINVAL; + goto out; + } + not_aligned++; } if (cur_lblock + nr_pblocks >= sis->max) @@ -3927,6 +3939,11 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, sis->max = cur_lblock; sis->pages = cur_lblock - 1; sis->highest_bit = cur_lblock - 1; + + if (not_aligned) + f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n" + "\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()", + not_aligned); out: return ret; } -- 2.31.1.607.g51e8a6a459-goog ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [f2fs-dev] [PATCH v2] f2fs: avoid swapon failure by giving a warning first @ 2021-05-12 4:00 ` Jaegeuk Kim 0 siblings, 0 replies; 10+ messages in thread From: Jaegeuk Kim @ 2021-05-12 4:00 UTC (permalink / raw) To: linux-kernel, linux-f2fs-devel; +Cc: kernel test robot The final solution can be migrating blocks to form a section-aligned file internally. Meanwhile, let's ask users to do that when preparing the swap file initially like: 1) create() 2) ioctl(F2FS_IOC_SET_PIN_FILE) 3) fallocate() Reported-by: kernel test robot <oliver.sang@intel.com> Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned") Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> --- v2: - fix to warn out once - cover check_swap_activate_fast fs/f2fs/data.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 33e56ae84e35..41e260680b27 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -3801,6 +3801,7 @@ static int f2fs_is_file_aligned(struct inode *inode) block_t pblock; unsigned long nr_pblocks; unsigned int blocks_per_sec = BLKS_PER_SEC(sbi); + unsigned int not_aligned = 0; int ret = 0; cur_lblock = 0; @@ -3833,13 +3834,20 @@ static int f2fs_is_file_aligned(struct inode *inode) if ((pblock - main_blkaddr) & (blocks_per_sec - 1) || nr_pblocks & (blocks_per_sec - 1)) { - f2fs_err(sbi, "Swapfile does not align to section"); - ret = -EINVAL; - goto out; + if (f2fs_is_pinned_file(inode)) { + f2fs_err(sbi, "Swapfile does not align to section"); + ret = -EINVAL; + goto out; + } + not_aligned++; } cur_lblock += nr_pblocks; } + if (not_aligned) + f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n" + "\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()", + not_aligned); out: return ret; } @@ -3858,6 +3866,7 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, int nr_extents = 0; unsigned long nr_pblocks; unsigned int blocks_per_sec = BLKS_PER_SEC(sbi); + unsigned int not_aligned = 0; int ret = 0; /* @@ -3896,9 +3905,12 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, if ((pblock - SM_I(sbi)->main_blkaddr) & (blocks_per_sec - 1) || nr_pblocks & (blocks_per_sec - 1)) { - f2fs_err(sbi, "Swapfile does not align to section"); - ret = -EINVAL; - goto out; + if (f2fs_is_pinned_file(inode)) { + f2fs_err(sbi, "Swapfile does not align to section"); + ret = -EINVAL; + goto out; + } + not_aligned++; } if (cur_lblock + nr_pblocks >= sis->max) @@ -3927,6 +3939,11 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, sis->max = cur_lblock; sis->pages = cur_lblock - 1; sis->highest_bit = cur_lblock - 1; + + if (not_aligned) + f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n" + "\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()", + not_aligned); out: return ret; } -- 2.31.1.607.g51e8a6a459-goog _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [f2fs-dev] [PATCH v2] f2fs: avoid swapon failure by giving a warning first 2021-05-12 4:00 ` [f2fs-dev] " Jaegeuk Kim @ 2021-05-12 10:13 ` Chao Yu -1 siblings, 0 replies; 10+ messages in thread From: Chao Yu @ 2021-05-12 10:13 UTC (permalink / raw) To: Jaegeuk Kim, linux-kernel, linux-f2fs-devel; +Cc: kernel test robot Jaegeuk, On 2021/5/12 12:00, Jaegeuk Kim wrote: > The final solution can be migrating blocks to form a section-aligned file > internally. Meanwhile, let's ask users to do that when preparing the swap > file initially like: > 1) create() > 2) ioctl(F2FS_IOC_SET_PIN_FILE) > 3) fallocate() > > Reported-by: kernel test robot <oliver.sang@intel.com> > Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned") > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Reviewed-by: Chao Yu <yuchao0@huawei.com> I've not tested yet though, any comments on below patch? [PATCH RFC] f2fs: support migrating swapfile in aligned write mode Thanks, > --- > v2: > - fix to warn out once > - cover check_swap_activate_fast > > fs/f2fs/data.c | 29 +++++++++++++++++++++++------ > 1 file changed, 23 insertions(+), 6 deletions(-) > > diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c > index 33e56ae84e35..41e260680b27 100644 > --- a/fs/f2fs/data.c > +++ b/fs/f2fs/data.c > @@ -3801,6 +3801,7 @@ static int f2fs_is_file_aligned(struct inode *inode) > block_t pblock; > unsigned long nr_pblocks; > unsigned int blocks_per_sec = BLKS_PER_SEC(sbi); > + unsigned int not_aligned = 0; > int ret = 0; > > cur_lblock = 0; > @@ -3833,13 +3834,20 @@ static int f2fs_is_file_aligned(struct inode *inode) > > if ((pblock - main_blkaddr) & (blocks_per_sec - 1) || > nr_pblocks & (blocks_per_sec - 1)) { > - f2fs_err(sbi, "Swapfile does not align to section"); > - ret = -EINVAL; > - goto out; > + if (f2fs_is_pinned_file(inode)) { > + f2fs_err(sbi, "Swapfile does not align to section"); > + ret = -EINVAL; > + goto out; > + } > + not_aligned++; > } > > cur_lblock += nr_pblocks; > } > + if (not_aligned) > + f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n" > + "\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()", > + not_aligned); > out: > return ret; > } > @@ -3858,6 +3866,7 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, > int nr_extents = 0; > unsigned long nr_pblocks; > unsigned int blocks_per_sec = BLKS_PER_SEC(sbi); > + unsigned int not_aligned = 0; > int ret = 0; > > /* > @@ -3896,9 +3905,12 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, > > if ((pblock - SM_I(sbi)->main_blkaddr) & (blocks_per_sec - 1) || > nr_pblocks & (blocks_per_sec - 1)) { > - f2fs_err(sbi, "Swapfile does not align to section"); > - ret = -EINVAL; > - goto out; > + if (f2fs_is_pinned_file(inode)) { > + f2fs_err(sbi, "Swapfile does not align to section"); > + ret = -EINVAL; > + goto out; > + } > + not_aligned++; > } > > if (cur_lblock + nr_pblocks >= sis->max) > @@ -3927,6 +3939,11 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, > sis->max = cur_lblock; > sis->pages = cur_lblock - 1; > sis->highest_bit = cur_lblock - 1; > + > + if (not_aligned) > + f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n" > + "\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()", > + not_aligned); > out: > return ret; > } > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [f2fs-dev] [PATCH v2] f2fs: avoid swapon failure by giving a warning first @ 2021-05-12 10:13 ` Chao Yu 0 siblings, 0 replies; 10+ messages in thread From: Chao Yu @ 2021-05-12 10:13 UTC (permalink / raw) To: Jaegeuk Kim, linux-kernel, linux-f2fs-devel; +Cc: kernel test robot Jaegeuk, On 2021/5/12 12:00, Jaegeuk Kim wrote: > The final solution can be migrating blocks to form a section-aligned file > internally. Meanwhile, let's ask users to do that when preparing the swap > file initially like: > 1) create() > 2) ioctl(F2FS_IOC_SET_PIN_FILE) > 3) fallocate() > > Reported-by: kernel test robot <oliver.sang@intel.com> > Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned") > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Reviewed-by: Chao Yu <yuchao0@huawei.com> I've not tested yet though, any comments on below patch? [PATCH RFC] f2fs: support migrating swapfile in aligned write mode Thanks, > --- > v2: > - fix to warn out once > - cover check_swap_activate_fast > > fs/f2fs/data.c | 29 +++++++++++++++++++++++------ > 1 file changed, 23 insertions(+), 6 deletions(-) > > diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c > index 33e56ae84e35..41e260680b27 100644 > --- a/fs/f2fs/data.c > +++ b/fs/f2fs/data.c > @@ -3801,6 +3801,7 @@ static int f2fs_is_file_aligned(struct inode *inode) > block_t pblock; > unsigned long nr_pblocks; > unsigned int blocks_per_sec = BLKS_PER_SEC(sbi); > + unsigned int not_aligned = 0; > int ret = 0; > > cur_lblock = 0; > @@ -3833,13 +3834,20 @@ static int f2fs_is_file_aligned(struct inode *inode) > > if ((pblock - main_blkaddr) & (blocks_per_sec - 1) || > nr_pblocks & (blocks_per_sec - 1)) { > - f2fs_err(sbi, "Swapfile does not align to section"); > - ret = -EINVAL; > - goto out; > + if (f2fs_is_pinned_file(inode)) { > + f2fs_err(sbi, "Swapfile does not align to section"); > + ret = -EINVAL; > + goto out; > + } > + not_aligned++; > } > > cur_lblock += nr_pblocks; > } > + if (not_aligned) > + f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n" > + "\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()", > + not_aligned); > out: > return ret; > } > @@ -3858,6 +3866,7 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, > int nr_extents = 0; > unsigned long nr_pblocks; > unsigned int blocks_per_sec = BLKS_PER_SEC(sbi); > + unsigned int not_aligned = 0; > int ret = 0; > > /* > @@ -3896,9 +3905,12 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, > > if ((pblock - SM_I(sbi)->main_blkaddr) & (blocks_per_sec - 1) || > nr_pblocks & (blocks_per_sec - 1)) { > - f2fs_err(sbi, "Swapfile does not align to section"); > - ret = -EINVAL; > - goto out; > + if (f2fs_is_pinned_file(inode)) { > + f2fs_err(sbi, "Swapfile does not align to section"); > + ret = -EINVAL; > + goto out; > + } > + not_aligned++; > } > > if (cur_lblock + nr_pblocks >= sis->max) > @@ -3927,6 +3939,11 @@ static int check_swap_activate_fast(struct swap_info_struct *sis, > sis->max = cur_lblock; > sis->pages = cur_lblock - 1; > sis->highest_bit = cur_lblock - 1; > + > + if (not_aligned) > + f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n" > + "\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()", > + not_aligned); > out: > return ret; > } > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-05-12 10:13 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-05-11 21:43 [PATCH] f2fs: avoid swapon failure by giving a warning first Jaegeuk Kim 2021-05-11 21:43 ` [f2fs-dev] " Jaegeuk Kim 2021-05-12 1:28 ` Chao Yu 2021-05-12 1:28 ` Chao Yu 2021-05-12 3:10 ` Chao Yu 2021-05-12 3:10 ` Chao Yu 2021-05-12 4:00 ` [PATCH v2] " Jaegeuk Kim 2021-05-12 4:00 ` [f2fs-dev] " Jaegeuk Kim 2021-05-12 10:13 ` Chao Yu 2021-05-12 10:13 ` Chao Yu
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.