Acked-By: Kirill Korotaev <dev@xxxxxxxxxx> hit it today as well :/ > When a 32-bit program that was not compiled with large file offsets does a > stat and gets a st_ino value back that won't fit in the 32 bit field, glibc > (correctly) generates an EOVERFLOW error. We can't do anything about fs's > with larger permanent inode numbers, but when we generate them on the fly, > we ought to try and have them fit within a 32 bit field. > > This patch takes the first step toward this by making the static counters in > these two functions be 32 bits. > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> > > diff --git a/fs/inode.c b/fs/inode.c > index bf21dc6..23fc1fd 100644 > --- a/fs/inode.c > +++ b/fs/inode.c > @@ -524,7 +524,8 @@ repeat: > */ > struct inode *new_inode(struct super_block *sb) > { > - static unsigned long last_ino; > + /* 32 bits for compatability mode stat calls */ > + static unsigned int last_ino; > struct inode * inode; > > spin_lock_prefetch(&inode_lock); > @@ -683,7 +684,8 @@ static unsigned long hash(struct super_block *sb, unsigned long hashval) > */ > ino_t iunique(struct super_block *sb, ino_t max_reserved) > { > - static ino_t counter; > + /* 32 bits for compatability mode stat calls */ > + static unsigned int counter; > struct inode *inode; > struct hlist_head * head; > ino_t res; > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html