mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 00:21:17 +00:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: truncate: use new helpers truncate: new helpers fs: fix overflow in sys_mount() for in-kernel calls fs: Make unload_nls() NULL pointer safe freeze_bdev: grab active reference to frozen superblocks freeze_bdev: kill bd_mount_sem exofs: remove BKL from super operations fs/romfs: correct error-handling code vfs: seq_file: add helpers for data filling vfs: remove redundant position check in do_sendfile vfs: change sb->s_maxbytes to a loff_t vfs: explicitly cast s_maxbytes in fiemap_check_ranges libfs: return error code on failed attr set seq_file: return a negative error code when seq_path_root() fails. vfs: optimize touch_time() too vfs: optimization for touch_atime() vfs: split generic_forget_inode() so that hugetlbfs does not have to copy it fs/inode.c: add dev-id and inode number for debugging in init_special_inode() libfs: make simple_read_from_buffer conventional
This commit is contained in:
commit
6c5daf012c
41 changed files with 528 additions and 529 deletions
|
@ -380,36 +380,11 @@ static void hugetlbfs_delete_inode(struct inode *inode)
|
|||
|
||||
static void hugetlbfs_forget_inode(struct inode *inode) __releases(inode_lock)
|
||||
{
|
||||
struct super_block *sb = inode->i_sb;
|
||||
|
||||
if (!hlist_unhashed(&inode->i_hash)) {
|
||||
if (!(inode->i_state & (I_DIRTY|I_SYNC)))
|
||||
list_move(&inode->i_list, &inode_unused);
|
||||
inodes_stat.nr_unused++;
|
||||
if (!sb || (sb->s_flags & MS_ACTIVE)) {
|
||||
spin_unlock(&inode_lock);
|
||||
return;
|
||||
}
|
||||
inode->i_state |= I_WILL_FREE;
|
||||
spin_unlock(&inode_lock);
|
||||
/*
|
||||
* write_inode_now is a noop as we set BDI_CAP_NO_WRITEBACK
|
||||
* in our backing_dev_info.
|
||||
*/
|
||||
write_inode_now(inode, 1);
|
||||
spin_lock(&inode_lock);
|
||||
inode->i_state &= ~I_WILL_FREE;
|
||||
inodes_stat.nr_unused--;
|
||||
hlist_del_init(&inode->i_hash);
|
||||
if (generic_detach_inode(inode)) {
|
||||
truncate_hugepages(inode, 0);
|
||||
clear_inode(inode);
|
||||
destroy_inode(inode);
|
||||
}
|
||||
list_del_init(&inode->i_list);
|
||||
list_del_init(&inode->i_sb_list);
|
||||
inode->i_state |= I_FREEING;
|
||||
inodes_stat.nr_inodes--;
|
||||
spin_unlock(&inode_lock);
|
||||
truncate_hugepages(inode, 0);
|
||||
clear_inode(inode);
|
||||
destroy_inode(inode);
|
||||
}
|
||||
|
||||
static void hugetlbfs_drop_inode(struct inode *inode)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue