Re: [PATCH 2/3] xfs: create symlink proc/fs/xfs/stat to sys/fs/xfs/stats

Eric Sandeen
2015-09-03T18:32:34Z

On 9/3/15 12:57 PM, Darrick J. Wong wrote:
> On Thu, Sep 03, 2015 at 11:36:26AM -0500, billodo wrote:
>> As a part of the work to move xfs global stats from procfs to sysfs,
>> this patch creates the symlink from proc/fs/xfs/stat to sys/fs/xfs/stats.
>>
>> Signed-off-by: Bill O'Donnell <billodo@redhat.com>
>> ---
>> fs/xfs/xfs_stats.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/xfs/xfs_stats.c b/fs/xfs/xfs_stats.c
>> index 856cf57..ad435f1 100644
>> --- a/fs/xfs/xfs_stats.c
>> +++ b/fs/xfs/xfs_stats.c
>> @@ -244,9 +244,13 @@ xfs_init_procfs(void)
>> if (!proc_mkdir("fs/xfs", NULL))
>> goto out;
>>
>> - if (!proc_create("fs/xfs/stat", 0, NULL,
>> - &xfs_stat_proc_fops))
>> + if (!proc_symlink("fs/xfs/stat", NULL,
>> + "/sys/fs/xfs/stats/stats"))
>
> Uh.... is it actually guaranteed that sysfs is mounted on /sys now?
>
> I sort of recall gregkh grumbling years ago that sysfs can be mounted anywhere,
> and that /proc shouldn't hardcode links to it. But that's just handwaving on
> my part.

You can blame me for that idea. At least one other driver does
do it, though; of_core_init():

proc_symlink("device-tree", NULL, "/sys/firmware/devicetree/base");

worst-case scenario, your "legacy" stats file will be a broken symlink...

-Eric

> --D
>
>> + {
>> + printk(KERN_INFO "failed to created fs/xfs/stat symlink\n");
>> goto out_remove_xfs_dir;
>> + }
>> +
>> #ifdef CONFIG_XFS_QUOTA
>> if (!proc_create("fs/xfs/xqmstat", 0, NULL,
>> &xqmstat_proc_fops))
>> --
>> 2.4.3