Commit 9b01c350af4fb00fe2ab66ff9bf16058c50b69bd

Authored by Cesar Eduardo Barros
Committed by Linus Torvalds
1 parent f2090d2df5

sys_swapon: do only cleanup in the cleanup blocks

The only way error is 0 in the cleanup blocks is when the function is
returning successfully. In this case, the cleanup blocks were setting
S_SWAPFILE in the S_ISREG case. But this is not a cleanup.

Move the setting of S_SWAPFILE to just before the "goto out;" to make
this more clear. At this point, we do not need to test for inode because
it will never be NULL.

Signed-off-by: Cesar Eduardo Barros <cesarb@cesarb.net>
Tested-by: Eric B Munson <emunson@mgebm.net>
Acked-by: Eric B Munson <emunson@mgebm.net>
Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 3 additions and 4 deletions Side-by-side Diff

... ... @@ -2136,6 +2136,8 @@
2136 2136 atomic_inc(&proc_poll_event);
2137 2137 wake_up_interruptible(&proc_poll_wait);
2138 2138  
  2139 + if (S_ISREG(inode->i_mode))
  2140 + inode->i_flags |= S_SWAPFILE;
2139 2141 error = 0;
2140 2142 goto out;
2141 2143 bad_swap:
2142 2144  
... ... @@ -2163,11 +2165,8 @@
2163 2165 }
2164 2166 if (name)
2165 2167 putname(name);
2166   - if (inode && S_ISREG(inode->i_mode)) {
2167   - if (!error)
2168   - inode->i_flags |= S_SWAPFILE;
  2168 + if (inode && S_ISREG(inode->i_mode))
2169 2169 mutex_unlock(&inode->i_mutex);
2170   - }
2171 2170 return error;
2172 2171 }
2173 2172