mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04: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: (52 commits) split invalidate_inodes() fs: skip I_FREEING inodes in writeback_sb_inodes fs: fold invalidate_list into invalidate_inodes fs: do not drop inode_lock in dispose_list fs: inode split IO and LRU lists fs: switch bdev inode bdi's correctly fs: fix buffer invalidation in invalidate_list fsnotify: use dget_parent smbfs: use dget_parent exportfs: use dget_parent fs: use RCU read side protection in d_validate fs: clean up dentry lru modification fs: split __shrink_dcache_sb fs: improve DCACHE_REFERENCED usage fs: use percpu counter for nr_dentry and nr_dentry_unused fs: simplify __d_free fs: take dcache_lock inside __d_path fs: do not assign default i_ino in new_inode fs: introduce a per-cpu last_ino allocator new helper: ihold() ...
This commit is contained in:
commit
426e1f5cec
118 changed files with 851 additions and 689 deletions
|
|
@ -74,11 +74,11 @@ static int bdi_debug_stats_show(struct seq_file *m, void *v)
|
|||
|
||||
nr_wb = nr_dirty = nr_io = nr_more_io = 0;
|
||||
spin_lock(&inode_lock);
|
||||
list_for_each_entry(inode, &wb->b_dirty, i_list)
|
||||
list_for_each_entry(inode, &wb->b_dirty, i_wb_list)
|
||||
nr_dirty++;
|
||||
list_for_each_entry(inode, &wb->b_io, i_list)
|
||||
list_for_each_entry(inode, &wb->b_io, i_wb_list)
|
||||
nr_io++;
|
||||
list_for_each_entry(inode, &wb->b_more_io, i_list)
|
||||
list_for_each_entry(inode, &wb->b_more_io, i_wb_list)
|
||||
nr_more_io++;
|
||||
spin_unlock(&inode_lock);
|
||||
|
||||
|
|
|
|||
|
|
@ -1586,6 +1586,7 @@ static struct inode *shmem_get_inode(struct super_block *sb, const struct inode
|
|||
|
||||
inode = new_inode(sb);
|
||||
if (inode) {
|
||||
inode->i_ino = get_next_ino();
|
||||
inode_init_owner(inode, dir, mode);
|
||||
inode->i_blocks = 0;
|
||||
inode->i_mapping->backing_dev_info = &shmem_backing_dev_info;
|
||||
|
|
@ -1903,7 +1904,7 @@ static int shmem_link(struct dentry *old_dentry, struct inode *dir, struct dentr
|
|||
dir->i_size += BOGO_DIRENT_SIZE;
|
||||
inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME;
|
||||
inc_nlink(inode);
|
||||
atomic_inc(&inode->i_count); /* New dentry reference */
|
||||
ihold(inode); /* New dentry reference */
|
||||
dget(dentry); /* Extra pinning count for the created dentry */
|
||||
d_instantiate(dentry, inode);
|
||||
out:
|
||||
|
|
@ -2146,7 +2147,7 @@ static int shmem_encode_fh(struct dentry *dentry, __u32 *fh, int *len,
|
|||
if (*len < 3)
|
||||
return 255;
|
||||
|
||||
if (hlist_unhashed(&inode->i_hash)) {
|
||||
if (inode_unhashed(inode)) {
|
||||
/* Unfortunately insert_inode_hash is not idempotent,
|
||||
* so as we hash inodes here rather than at creation
|
||||
* time, we need a lock to ensure we only try
|
||||
|
|
@ -2154,7 +2155,7 @@ static int shmem_encode_fh(struct dentry *dentry, __u32 *fh, int *len,
|
|||
*/
|
||||
static DEFINE_SPINLOCK(lock);
|
||||
spin_lock(&lock);
|
||||
if (hlist_unhashed(&inode->i_hash))
|
||||
if (inode_unhashed(inode))
|
||||
__insert_inode_hash(inode,
|
||||
inode->i_ino + inode->i_generation);
|
||||
spin_unlock(&lock);
|
||||
|
|
|
|||
Loading…
Reference in a new issue