aboutsummaryrefslogtreecommitdiffstats
path: root/fs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/inode.c')
-rw-r--r--fs/inode.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/fs/inode.c b/fs/inode.c
index 410f235c337b..df2ef15d03d2 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -524,7 +524,12 @@ repeat:
524 */ 524 */
525struct inode *new_inode(struct super_block *sb) 525struct inode *new_inode(struct super_block *sb)
526{ 526{
527 static unsigned long last_ino; 527 /*
528 * On a 32bit, non LFS stat() call, glibc will generate an EOVERFLOW
529 * error if st_ino won't fit in target struct field. Use 32bit counter
530 * here to attempt to avoid that.
531 */
532 static unsigned int last_ino;
528 struct inode * inode; 533 struct inode * inode;
529 534
530 spin_lock_prefetch(&inode_lock); 535 spin_lock_prefetch(&inode_lock);
@@ -683,7 +688,12 @@ static unsigned long hash(struct super_block *sb, unsigned long hashval)
683 */ 688 */
684ino_t iunique(struct super_block *sb, ino_t max_reserved) 689ino_t iunique(struct super_block *sb, ino_t max_reserved)
685{ 690{
686 static ino_t counter; 691 /*
692 * On a 32bit, non LFS stat() call, glibc will generate an EOVERFLOW
693 * error if st_ino won't fit in target struct field. Use 32bit counter
694 * here to attempt to avoid that.
695 */
696 static unsigned int counter;
687 struct inode *inode; 697 struct inode *inode;
688 struct hlist_head *head; 698 struct hlist_head *head;
689 ino_t res; 699 ino_t res;