Date: Sat, 14 Jan 2012 09:39:40 +0100 From: Polytropon <freebsd@edvax.de> To: FreeBSD Mailing List <freebsd-questions@freebsd.org> Cc: Bernt Hansson <bah@bananmonarki.se> Subject: Re: disk problem(s) Message-ID: <20120114093940.af177d39.freebsd@edvax.de> In-Reply-To: <20120114092236.0c139ccd.freebsd@edvax.de> References: <4F113290.1060706@bananmonarki.se> <20120114092236.0c139ccd.freebsd@edvax.de>
index | next in thread | previous in thread | raw e-mail
On Sat, 14 Jan 2012 09:22:36 +0100, Polytropon wrote:
> The mkdir() function can be found (for UFS2) in the
> file /usr/src/sys/gnu/fs/ext2fs/ext2_vnops.c at
> line 1111 (sources of 8.2-STABLE i386 here). If
> you examine what mkdir() does, you'll see that
> the "too many links" is true when LINK_MAX is
> exceeded. Per /usr/src/sys/gnu/fs/ext2fs/ext2_fs.h
> we can determine that
>
> #define EXT2_LINK_MAX 32000
>
> is defined. Can you check if 32000 is the amount
> of directories created?
Shit, what have I done... of course the files
mentioned here do correspond to ext2 (Linux stuff),
and _not_ to UFS2.
The answer is in /usr/src/sys/sys/syslimits.h where
we find the following definition:
#define LINK_MAX 32767 /* max file link count */
Can you check _that_ number against the amount of
directories created?
By the way, in cases like this it's helpful if you
provide the _command_ that you tried and the current
directory from _where_ you've tried it.
Also see /usr/src/sys/ufs/ufs/ufs_vnops.c, lines 1748
and onward, to see the UFS mkdir() system call acting
with
if ((nlink_t)dp->i_nlink >= LINK_MAX) {
error = EMLINK;
goto out;
}
when the LINK_MAX limit is reached.
Sorry for the confusion.
--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120114093940.af177d39.freebsd>
