Messages in this thread | | | Subject | Re: [REF PATCH] mm/swap: fix swapon failure | From | Alex Shi <> | Date | Mon, 9 Nov 2020 20:36:08 +0800 |
| |
在 2020/11/9 下午8:17, Alex Shi 写道: > > > 在 2020/11/9 下午8:07, Matthew Wilcox 写道: >> On Mon, Nov 09, 2020 at 07:47:16PM +0800, Alex Shi wrote: >>> Go through the context I found the exit_swap_address_space(p->type) >>> shouldn't be used in good result path. So just move it to error path. >> >> But ... it's not used in the success path. There's a 'goto' right >> before it. Does this really fix your problem? >> > > The trick thing is. It do fix my problem on my centos 7 with gcc 8.3.1... > > I am getting headache on this problem...
Checked again on my git tree. nothing weird, and code based on cf7cd542d1b5 Add linux-next specific files for 20201104
Sorry, I have no idea where is the problem...
> >>> @@ -3339,7 +3339,8 @@ static bool swap_discardable(struct swap_info_struct *si) >>> error = inode_drain_writes(inode); >>> if (error) { >>> inode->i_flags &= ~S_SWAPFILE; >>> - goto free_swap_address_space; >>> + exit_swap_address_space(p->type); >>> + goto bad_swap_unlock_inode; >>> } >>> >>> mutex_lock(&swapon_mutex); >>> @@ -3364,8 +3365,6 @@ static bool swap_discardable(struct swap_info_struct *si) >>> >>> error = 0; >>> goto out; >>> -free_swap_address_space: >>> - exit_swap_address_space(p->type); >>> bad_swap_unlock_inode: >>> inode_unlock(inode); >>> bad_swap: >>> -- >>> 1.8.3.1 >>> >>>
| |