[PATCH] vfs: avoid creation of inode number 0 in get_next_ino V2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



currently, get_next_ino() is able to create inodes with inode number = 0.
This have a bad impact in the filesystems relying in this function to generate
inode numbers.

While there is no problem at all in having inodes with number 0, userspace tools
which handle file management tasks can have problems handling these files, like
for example, the impossiblity of users to delete these files, since glibc will
ignore them.

This problem has been raised previously, but the old thread didn't have any
other update for a year+, and I've seen too many users hitting the same issue
regarding the impossibility to delete files while using filesystems relying on
this function. So, I'm starting the thread again, with changes in the patch
suggested by Viro.

Changelog:

	V2: Use do..while() instead of unlikely(!res)

Signed-off-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx>
---
 fs/inode.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/inode.c b/fs/inode.c
index ea37cd1..85a05b7 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -839,7 +839,9 @@ unsigned int get_next_ino(void)
 	}
 #endif
 
-	*p = ++res;
+	do {
+		*p = ++res;
+	} while (!res);
 	put_cpu_var(last_ino);
 	return res;
 }
-- 
2.1.0

--
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



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux