From 24b07e7a3e7ff8b48033de422f27db7c0a2c690d Mon Sep 17 00:00:00 2001 From: Maksym Planeta Date: Wed, 21 Mar 2012 22:43:51 +0200 Subject: Fix hard links accounting in tmpfs. * tmpfs/dir.c (diskfs_init_dir, diskfs_clear_directory): Fix hard link accounting in tmpfs for directories. --- tmpfs/dir.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tmpfs/dir.c b/tmpfs/dir.c index 65386e0a..4a0a60b5 100644 --- a/tmpfs/dir.c +++ b/tmpfs/dir.c @@ -29,6 +29,12 @@ diskfs_init_dir (struct node *dp, struct node *pdp, struct protid *cred) { dp->dn->u.dir.dotdot = pdp->dn; dp->dn->u.dir.entries = 0; + + /* Increase hardlink count for parent directory */ + pdp->dn_stat.st_nlink++; + /* Take '.' directory into account */ + dp->dn_stat.st_nlink++; + return 0; } @@ -40,6 +46,12 @@ diskfs_clear_directory (struct node *dp, struct node *pdp, return ENOTEMPTY; assert (dp->dn_stat.st_size == 0); assert (dp->dn->u.dir.dotdot == pdp->dn); + + /* Decrease hardlink count for parent directory */ + pdp->dn_stat.st_nlink--; + /* Take '.' directory into account */ + dp->dn_stat.st_nlink--; + return 0; } -- cgit v1.2.3