diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/swapfile.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c index a314d42c0fa5..e356e5e70313 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c | |||
@@ -2136,6 +2136,8 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags) | |||
2136 | atomic_inc(&proc_poll_event); | 2136 | atomic_inc(&proc_poll_event); |
2137 | wake_up_interruptible(&proc_poll_wait); | 2137 | wake_up_interruptible(&proc_poll_wait); |
2138 | 2138 | ||
2139 | if (S_ISREG(inode->i_mode)) | ||
2140 | inode->i_flags |= S_SWAPFILE; | ||
2139 | error = 0; | 2141 | error = 0; |
2140 | goto out; | 2142 | goto out; |
2141 | bad_swap: | 2143 | bad_swap: |
@@ -2163,11 +2165,8 @@ out: | |||
2163 | } | 2165 | } |
2164 | if (name) | 2166 | if (name) |
2165 | putname(name); | 2167 | putname(name); |
2166 | if (inode && S_ISREG(inode->i_mode)) { | 2168 | if (inode && S_ISREG(inode->i_mode)) |
2167 | if (!error) | ||
2168 | inode->i_flags |= S_SWAPFILE; | ||
2169 | mutex_unlock(&inode->i_mutex); | 2169 | mutex_unlock(&inode->i_mutex); |
2170 | } | ||
2171 | return error; | 2170 | return error; |
2172 | } | 2171 | } |
2173 | 2172 | ||