knfsd: nfsd: factor out code from show_expflags

Factor out some code to be shared by secinfo display code.  Remove some
unnecessary conditional printing of commas where we know the condition is
true.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
J. Bruce Fields 2007-07-17 04:04:49 -07:00 коммит произвёл Linus Torvalds
Родитель 0ec757df97
Коммит ac34cdb03d
1 изменённых файлов: 15 добавлений и 8 удалений

Просмотреть файл

@ -1453,28 +1453,35 @@ static struct flags {
{ 0, {"", ""}} { 0, {"", ""}}
}; };
static void exp_flags(struct seq_file *m, int flag, int fsid, static void show_expflags(struct seq_file *m, int flags, int mask)
uid_t anonu, uid_t anong, struct nfsd4_fs_locations *fsloc)
{ {
int first = 0;
struct flags *flg; struct flags *flg;
int state, first = 0;
for (flg = expflags; flg->flag; flg++) { for (flg = expflags; flg->flag; flg++) {
int state = (flg->flag & flag)?0:1; if (flg->flag & ~mask)
continue;
state = (flg->flag & flags) ? 0 : 1;
if (*flg->name[state]) if (*flg->name[state])
seq_printf(m, "%s%s", first++?",":"", flg->name[state]); seq_printf(m, "%s%s", first++?",":"", flg->name[state]);
} }
}
static void exp_flags(struct seq_file *m, int flag, int fsid,
uid_t anonu, uid_t anong, struct nfsd4_fs_locations *fsloc)
{
show_expflags(m, flag, NFSEXP_ALLFLAGS);
if (flag & NFSEXP_FSID) if (flag & NFSEXP_FSID)
seq_printf(m, "%sfsid=%d", first++?",":"", fsid); seq_printf(m, ",fsid=%d", fsid);
if (anonu != (uid_t)-2 && anonu != (0x10000-2)) if (anonu != (uid_t)-2 && anonu != (0x10000-2))
seq_printf(m, "%sanonuid=%d", first++?",":"", anonu); seq_printf(m, ",sanonuid=%d", anonu);
if (anong != (gid_t)-2 && anong != (0x10000-2)) if (anong != (gid_t)-2 && anong != (0x10000-2))
seq_printf(m, "%sanongid=%d", first++?",":"", anong); seq_printf(m, ",sanongid=%d", anong);
if (fsloc && fsloc->locations_count > 0) { if (fsloc && fsloc->locations_count > 0) {
char *loctype = (fsloc->migrated) ? "refer" : "replicas"; char *loctype = (fsloc->migrated) ? "refer" : "replicas";
int i; int i;
seq_printf(m, "%s%s=", first++?",":"", loctype); seq_printf(m, ",%s=", loctype);
seq_escape(m, fsloc->locations[0].path, ",;@ \t\n\\"); seq_escape(m, fsloc->locations[0].path, ",;@ \t\n\\");
seq_putc(m, '@'); seq_putc(m, '@');
seq_escape(m, fsloc->locations[0].hosts, ",;@ \t\n\\"); seq_escape(m, fsloc->locations[0].hosts, ",;@ \t\n\\");