|
@@ -524,7 +524,12 @@ repeat:
|
|
*/
|
|
*/
|
|
struct inode *new_inode(struct super_block *sb)
|
|
struct inode *new_inode(struct super_block *sb)
|
|
{
|
|
{
|
|
- static unsigned long last_ino;
|
|
|
|
|
|
+ /*
|
|
|
|
+ * On a 32bit, non LFS stat() call, glibc will generate an EOVERFLOW
|
|
|
|
+ * error if st_ino won't fit in target struct field. Use 32bit counter
|
|
|
|
+ * here to attempt to avoid that.
|
|
|
|
+ */
|
|
|
|
+ static unsigned int last_ino;
|
|
struct inode * inode;
|
|
struct inode * inode;
|
|
|
|
|
|
spin_lock_prefetch(&inode_lock);
|
|
spin_lock_prefetch(&inode_lock);
|
|
@@ -683,7 +688,12 @@ static unsigned long hash(struct super_block *sb, unsigned long hashval)
|
|
*/
|
|
*/
|
|
ino_t iunique(struct super_block *sb, ino_t max_reserved)
|
|
ino_t iunique(struct super_block *sb, ino_t max_reserved)
|
|
{
|
|
{
|
|
- static ino_t counter;
|
|
|
|
|
|
+ /*
|
|
|
|
+ * On a 32bit, non LFS stat() call, glibc will generate an EOVERFLOW
|
|
|
|
+ * error if st_ino won't fit in target struct field. Use 32bit counter
|
|
|
|
+ * here to attempt to avoid that.
|
|
|
|
+ */
|
|
|
|
+ static unsigned int counter;
|
|
struct inode *inode;
|
|
struct inode *inode;
|
|
struct hlist_head *head;
|
|
struct hlist_head *head;
|
|
ino_t res;
|
|
ino_t res;
|