Add UFS_LINK_MAX for the UFS-specific limit on link counts.
ino64 expanded nlink_t to 64 bits, but the on-disk format for UFS is still limited to 16 bits. This is a nop currently but will matter if LINK_MAX is increased in the future. Reviewed by: kib Sponsored by: Chelsio Communications
This commit is contained in:
parent
5efe338f3d
commit
4f45713ae2
@ -11532,7 +11532,7 @@ handle_written_inodeblock(inodedep, bp, flags)
|
||||
*/
|
||||
if (inodedep->id_savedsize == -1 || inodedep->id_savedextsize == -1)
|
||||
panic("handle_written_inodeblock: bad size");
|
||||
if (inodedep->id_savednlink > LINK_MAX)
|
||||
if (inodedep->id_savednlink > UFS_LINK_MAX)
|
||||
panic("handle_written_inodeblock: Invalid link count "
|
||||
"%jd for inodedep %p", (uintmax_t)inodedep->id_savednlink,
|
||||
inodedep);
|
||||
|
@ -186,4 +186,6 @@ struct ufs1_dinode {
|
||||
u_int64_t di_modrev; /* 120: i_modrev for NFSv4 */
|
||||
};
|
||||
|
||||
#define UFS_LINK_MAX 32767
|
||||
|
||||
#endif /* _UFS_UFS_DINODE_H_ */
|
||||
|
@ -981,7 +981,7 @@ ufs_link(ap)
|
||||
goto out;
|
||||
}
|
||||
ip = VTOI(vp);
|
||||
if ((nlink_t)ip->i_nlink >= LINK_MAX) {
|
||||
if (ip->i_nlink >= UFS_LINK_MAX) {
|
||||
error = EMLINK;
|
||||
goto out;
|
||||
}
|
||||
@ -1266,7 +1266,7 @@ ufs_rename(ap)
|
||||
doingdirectory = 0;
|
||||
newparent = 0;
|
||||
ino = fip->i_number;
|
||||
if (fip->i_nlink >= LINK_MAX) {
|
||||
if (fip->i_nlink >= UFS_LINK_MAX) {
|
||||
error = EMLINK;
|
||||
goto unlockout;
|
||||
}
|
||||
@ -1369,7 +1369,7 @@ ufs_rename(ap)
|
||||
* actual link modification is completed when
|
||||
* .. is rewritten below.
|
||||
*/
|
||||
if ((nlink_t)tdp->i_nlink >= LINK_MAX) {
|
||||
if (tdp->i_nlink >= UFS_LINK_MAX) {
|
||||
error = EMLINK;
|
||||
goto bad;
|
||||
}
|
||||
@ -1793,7 +1793,7 @@ ufs_mkdir(ap)
|
||||
panic("ufs_mkdir: no name");
|
||||
#endif
|
||||
dp = VTOI(dvp);
|
||||
if ((nlink_t)dp->i_nlink >= LINK_MAX) {
|
||||
if (dp->i_nlink >= UFS_LINK_MAX) {
|
||||
error = EMLINK;
|
||||
goto out;
|
||||
}
|
||||
@ -2442,6 +2442,9 @@ ufs_pathconf(ap)
|
||||
|
||||
error = 0;
|
||||
switch (ap->a_name) {
|
||||
case _PC_LINK_MAX:
|
||||
*ap->a_retval = UFS_LINK_MAX;
|
||||
break;
|
||||
case _PC_NAME_MAX:
|
||||
*ap->a_retval = UFS_MAXNAMLEN;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user