diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-26 20:58:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-26 20:58:44 -0400 |
commit | 426e1f5cec4821945642230218876b0e89aafab1 (patch) | |
tree | 2728ace018d0698886989da586210ef1543a7098 /fs/xfs | |
parent | 9e5fca251f44832cb996961048ea977f80faf6ea (diff) | |
parent | 63997e98a3be68d7cec806d22bf9b02b2e1daabb (diff) |
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()
...
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_buf.c | 1 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_iops.c | 6 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_super.c | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_inode.h | 2 |
4 files changed, 7 insertions, 4 deletions
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index ba5312802aa9..63fd2c07cb57 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c | |||
@@ -1580,6 +1580,7 @@ xfs_mapping_buftarg( | |||
1580 | XFS_BUFTARG_NAME(btp)); | 1580 | XFS_BUFTARG_NAME(btp)); |
1581 | return ENOMEM; | 1581 | return ENOMEM; |
1582 | } | 1582 | } |
1583 | inode->i_ino = get_next_ino(); | ||
1583 | inode->i_mode = S_IFBLK; | 1584 | inode->i_mode = S_IFBLK; |
1584 | inode->i_bdev = bdev; | 1585 | inode->i_bdev = bdev; |
1585 | inode->i_rdev = bdev->bd_dev; | 1586 | inode->i_rdev = bdev->bd_dev; |
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index ec858e09d546..96107efc0c61 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c | |||
@@ -317,7 +317,7 @@ xfs_vn_link( | |||
317 | if (unlikely(error)) | 317 | if (unlikely(error)) |
318 | return -error; | 318 | return -error; |
319 | 319 | ||
320 | atomic_inc(&inode->i_count); | 320 | ihold(inode); |
321 | d_instantiate(dentry, inode); | 321 | d_instantiate(dentry, inode); |
322 | return 0; | 322 | return 0; |
323 | } | 323 | } |
@@ -760,7 +760,9 @@ xfs_setup_inode( | |||
760 | 760 | ||
761 | inode->i_ino = ip->i_ino; | 761 | inode->i_ino = ip->i_ino; |
762 | inode->i_state = I_NEW; | 762 | inode->i_state = I_NEW; |
763 | inode_add_to_lists(ip->i_mount->m_super, inode); | 763 | |
764 | inode_sb_list_add(inode); | ||
765 | insert_inode_hash(inode); | ||
764 | 766 | ||
765 | inode->i_mode = ip->i_d.di_mode; | 767 | inode->i_mode = ip->i_d.di_mode; |
766 | inode->i_nlink = ip->i_d.di_nlink; | 768 | inode->i_nlink = ip->i_d.di_nlink; |
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index ab31ce5aeaf9..cf808782c065 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -576,7 +576,7 @@ xfs_max_file_offset( | |||
576 | 576 | ||
577 | /* Figure out maximum filesize, on Linux this can depend on | 577 | /* Figure out maximum filesize, on Linux this can depend on |
578 | * the filesystem blocksize (on 32 bit platforms). | 578 | * the filesystem blocksize (on 32 bit platforms). |
579 | * __block_prepare_write does this in an [unsigned] long... | 579 | * __block_write_begin does this in an [unsigned] long... |
580 | * page->index << (PAGE_CACHE_SHIFT - bbits) | 580 | * page->index << (PAGE_CACHE_SHIFT - bbits) |
581 | * So, for page sized blocks (4K on 32 bit platforms), | 581 | * So, for page sized blocks (4K on 32 bit platforms), |
582 | * this wraps at around 8Tb (hence MAX_LFS_FILESIZE which is | 582 | * this wraps at around 8Tb (hence MAX_LFS_FILESIZE which is |
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index fac52290de90..fb2ca2e4cdc9 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h | |||
@@ -500,7 +500,7 @@ void xfs_mark_inode_dirty_sync(xfs_inode_t *); | |||
500 | #define IHOLD(ip) \ | 500 | #define IHOLD(ip) \ |
501 | do { \ | 501 | do { \ |
502 | ASSERT(atomic_read(&VFS_I(ip)->i_count) > 0) ; \ | 502 | ASSERT(atomic_read(&VFS_I(ip)->i_count) > 0) ; \ |
503 | atomic_inc(&(VFS_I(ip)->i_count)); \ | 503 | ihold(VFS_I(ip)); \ |
504 | trace_xfs_ihold(ip, _THIS_IP_); \ | 504 | trace_xfs_ihold(ip, _THIS_IP_); \ |
505 | } while (0) | 505 | } while (0) |
506 | 506 | ||