diff options
author | Jeff Layton <jlayton@redhat.com> | 2009-06-11 10:27:32 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2009-06-15 09:42:30 -0400 |
commit | 61f98ffd74254a95871168bd5a6646b4f3002e31 (patch) | |
tree | c66a4df0ccc4bedc58c7b45125a99c0ac61bc4da | |
parent | b70b92e41d95fd906f05f6e98f61209201495fa7 (diff) |
cifs: display scopeid in /proc/mounts
Move address display into a new function and display the scopeid as part
of the address in /proc/mounts.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
-rw-r--r-- | fs/cifs/cifsfs.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 8b315708cb3f..ddef913ff3e6 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -333,6 +333,27 @@ cifs_destroy_inode(struct inode *inode) | |||
333 | kmem_cache_free(cifs_inode_cachep, CIFS_I(inode)); | 333 | kmem_cache_free(cifs_inode_cachep, CIFS_I(inode)); |
334 | } | 334 | } |
335 | 335 | ||
336 | static void | ||
337 | cifs_show_address(struct seq_file *s, struct TCP_Server_Info *server) | ||
338 | { | ||
339 | seq_printf(s, ",addr="); | ||
340 | |||
341 | switch (server->addr.sockAddr.sin_family) { | ||
342 | case AF_INET: | ||
343 | seq_printf(s, "%pI4", &server->addr.sockAddr.sin_addr.s_addr); | ||
344 | break; | ||
345 | case AF_INET6: | ||
346 | seq_printf(s, "%pI6", | ||
347 | &server->addr.sockAddr6.sin6_addr.s6_addr); | ||
348 | if (server->addr.sockAddr6.sin6_scope_id) | ||
349 | seq_printf(s, "%%%u", | ||
350 | server->addr.sockAddr6.sin6_scope_id); | ||
351 | break; | ||
352 | default: | ||
353 | seq_printf(s, "(unknown)"); | ||
354 | } | ||
355 | } | ||
356 | |||
336 | /* | 357 | /* |
337 | * cifs_show_options() is for displaying mount options in /proc/mounts. | 358 | * cifs_show_options() is for displaying mount options in /proc/mounts. |
338 | * Not all settable options are displayed but most of the important | 359 | * Not all settable options are displayed but most of the important |
@@ -343,7 +364,6 @@ cifs_show_options(struct seq_file *s, struct vfsmount *m) | |||
343 | { | 364 | { |
344 | struct cifs_sb_info *cifs_sb; | 365 | struct cifs_sb_info *cifs_sb; |
345 | struct cifsTconInfo *tcon; | 366 | struct cifsTconInfo *tcon; |
346 | struct TCP_Server_Info *server; | ||
347 | 367 | ||
348 | cifs_sb = CIFS_SB(m->mnt_sb); | 368 | cifs_sb = CIFS_SB(m->mnt_sb); |
349 | tcon = cifs_sb->tcon; | 369 | tcon = cifs_sb->tcon; |
@@ -364,16 +384,7 @@ cifs_show_options(struct seq_file *s, struct vfsmount *m) | |||
364 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_GID) | 384 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_GID) |
365 | seq_printf(s, ",forcegid"); | 385 | seq_printf(s, ",forcegid"); |
366 | 386 | ||
367 | server = tcon->ses->server; | 387 | cifs_show_address(s, tcon->ses->server); |
368 | seq_printf(s, ",addr="); | ||
369 | switch (server->addr.sockAddr6.sin6_family) { | ||
370 | case AF_INET6: | ||
371 | seq_printf(s, "%pI6", &server->addr.sockAddr6.sin6_addr); | ||
372 | break; | ||
373 | case AF_INET: | ||
374 | seq_printf(s, "%pI4", &server->addr.sockAddr.sin_addr.s_addr); | ||
375 | break; | ||
376 | } | ||
377 | 388 | ||
378 | if (!tcon->unix_ext) | 389 | if (!tcon->unix_ext) |
379 | seq_printf(s, ",file_mode=0%o,dir_mode=0%o", | 390 | seq_printf(s, ",file_mode=0%o,dir_mode=0%o", |