1346 inode = mapping->host;
1347 if (S_ISBLK(inode->i_mode)) {
1348 struct block_device *bdev = I_BDEV(inode);
1349 set_blocksize(bdev, p->old_block_size);
1350 bd_release(bdev);
1351 } else {
1352 mutex_lock(&inode->i_mutex);
1353 inode->i_flags &= ~S_SWAPFILE;
1354 mutex_unlock(&inode->i_mutex);
1355 }
1356 filp_close(swap_file, NULL);
1357 err = 0;
1358
1359out_dput:
1360 filp_close(victim, NULL);
1361out:
1362 return err;
1363}
1364
1365#ifdef CONFIG_PROC_FS
1366
1367static void *swap_start(struct seq_file *swap, loff_t *pos)
1368{
1369 struct swap_info_struct *ptr = swap_info;
1370 int i;
1371 loff_t l = *pos;
1372
1373 mutex_lock(&swapon_mutex);
1374
1375 if (!l)
1376 return SEQ_START_TOKEN;
1377
1378 for (i = 0; i < nr_swapfiles; i++, ptr++) {
1379 if (!(ptr->flags & SWP_USED) || !ptr->swap_map)
1380 continue;
1381 if (!--l)
1382 return ptr;
1383 }
1384
1385 return NULL;
1386}