X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=fs%2Fproc%2Fgeneric.c;h=8a8c34461d481c115a31d628d8e598bb68c20b26;hb=a57ebc90f1350296edded12d33d7c278831bc3bf;hp=abe8920313fb32b84ad65b78861325727ae5ce45;hpb=31151ba2cef171344beac254e65bd7e00138bb0d;p=linux-2.6 diff --git a/fs/proc/generic.c b/fs/proc/generic.c index abe8920313..8a8c34461d 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c @@ -249,6 +249,18 @@ out: return error; } +static int proc_getattr(struct vfsmount *mnt, struct dentry *dentry, + struct kstat *stat) +{ + struct inode *inode = dentry->d_inode; + struct proc_dir_entry *de = PROC_I(inode)->pde; + if (de && de->nlink) + inode->i_nlink = de->nlink; + + generic_fillattr(inode, stat); + return 0; +} + static struct inode_operations proc_file_inode_operations = { .setattr = proc_notify_change, }; @@ -475,6 +487,7 @@ static struct file_operations proc_dir_operations = { */ static struct inode_operations proc_dir_inode_operations = { .lookup = proc_lookup, + .getattr = proc_getattr, .setattr = proc_notify_change, };