Patch "staging/lustre/llite: move root_squash from sysfs to debugfs" has been added to the 4.10-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
staging/lustre/llite: move root_squash from sysfs to debugfs
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
staging-lustre-llite-move-root_squash-from-sysfs-to-debugfs.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
4c13990e35b9f053857d4ad83bf0f58e612ec414Mon Sep 17 00:00:00 2001
From: Oleg Drokin <[email protected]>
Date: Wed, 7 Dec 2016 17:41:27 -0500
Subject: staging/lustre/llite: move root_squash from sysfs to debugfs
From: Oleg Drokin <[email protected]>
commit 4c13990e35b9f053857d4ad83bf0f58e612ec414 upstream.
root_squash control got accidentally moved to sysfs instead of debugfs, and the write side of it was also broken expecting a userspace buffer.
It contains both uid and gid values in a single file, so debugfs is a clear place for it.
--- drivers/staging/lustre/lustre/llite/lproc_llite.c | 27 ++++++++++++---------- 1 file changed, 15 insertions(+), 12 deletions(-)
drivers/staging/lustre/lustre/llite/lproc_llite.c +15 -12
@@ -924,27 +924,29 @@ static ssize_t ll_unstable_stats_seq_wri }LPROC_SEQ_FOPS (ll_unstable_stats); -static ssize_t root_squash_show (struct kobject *kobj,struct attribute *attr, -char *buf) +static int ll_root_squash_seq_show (struct seq_file *m,void *v) { - struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info, - ll_kobj); +struct super_block *sb = m->private; +struct ll_sb_info *sbi =ll_s2sbi (sb);struct root_squash_info *squash = &sbi->ll_squash; -return sprintf (buf,"%u:%u\n" , squash->rsi_uid, squash->rsi_gid); +seq_printf (m,"%u:%u\n" , squash->rsi_uid, squash->rsi_gid); +return 0 ; } -static ssize_t root_squash_store (struct kobject *kobj,struct attribute *attr, -const char *buffer,size_t count) +static ssize_t ll_root_squash_seq_write (struct file *file, +const char __user *buffer, +size_t count,loff_t *off) { - struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info, - ll_kobj); +struct seq_file *m = file->private_data; +struct super_block *sb = m->private; +struct ll_sb_info *sbi =ll_s2sbi (sb);struct root_squash_info *squash = &sbi->ll_squash;return lprocfs_wr_root_squash (buffer, count, squash, -ll_get_fsname (sbi->ll_sb,NULL ,0 )); +ll_get_fsname (sb,NULL ,0 )); } -LUSTRE_RW_ATTR (root_squash); +LPROC_SEQ_FOPS (ll_root_squash);static int ll_nosquash_nids_seq_show (struct seq_file *m,void *v) {
@@ -997,6 +999,8 @@ static struct lprocfs_vars lprocfs_llite { "statahead_stats", &ll_statahead_stats_fops, NULL, 0 }, { "unstable_stats", &ll_unstable_stats_fops, NULL }, { "sbi_flags", &ll_sbi_flags_fops, NULL, 0 }, + { .name = "root_squash", + .fops = &ll_root_squash_fops }, { .name = "nosquash_nids", .fops = &ll_nosquash_nids_fops }, { NULL }
@@ -1027,7 +1031,6 @@ static struct attribute *llite_attrs[] = &lustre_attr_max_easize.attr, &lustre_attr_default_easize.attr, &lustre_attr_xattr_cache.attr, - &lustre_attr_root_squash.attr, NULL, };
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/staging-lustre-llite-move-root_squash-from-sysfs-to-debugfs.patch