From: Al Viro <viro@ZenIV.linux.org.uk> Date: Fri, 4 Mar 2011 17:15:18 +0000 (+0000) Subject: btrfs: check link counter overflow in link(2) X-Git-Tag: firefly_0821_release~7613^2~1434^2~41 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c055e99eea6e4f614267632fac546e7896c0227b;p=firefly-linux-kernel-4.4.55.git btrfs: check link counter overflow in link(2) Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Chris Mason <chris.mason@oracle.com> --- diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 4822b3132784..04babaf31a33 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -4837,6 +4837,9 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir, if (root->objectid != BTRFS_I(inode)->root->objectid) return -EXDEV; + if (inode->i_nlink == ~0U) + return -EMLINK; + btrfs_inc_nlink(inode); inode->i_ctime = CURRENT_TIME;