Showing error 1448

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: mm/swapfile.c
Line in file: 1376
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

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/* iterator */
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}
Show full sources