aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.c
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2009-06-11 10:27:28 -0400
committerSteve French <sfrench@us.ibm.com>2009-06-13 04:17:30 -0400
commit8616e0fc1e27295316f9821a883f0e9fa6f8200f (patch)
tree99b3b5c887cb8d4ba244c51fdc9d5ba95102f6b3 /fs/cifs/cifsfs.c
parentf3ad116588151b3371ae4e092290e4f48e62b8bb (diff)
cifs: remove unneeded NULL checks from cifs_show_options
show_options is always called with the namespace_sem held. Therefore we don't need to worry about the vfsmount being NULL, or it vanishing while the function is running. By the same token, there's no need to worry about the superblock, tcon, smb or tcp sessions being NULL on entry. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r--fs/cifs/cifsfs.c130
1 files changed, 59 insertions, 71 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 0d92114195ab..3f121fbd6c56 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -346,80 +346,68 @@ cifs_show_options(struct seq_file *s, struct vfsmount *m)
346 struct TCP_Server_Info *server; 346 struct TCP_Server_Info *server;
347 347
348 cifs_sb = CIFS_SB(m->mnt_sb); 348 cifs_sb = CIFS_SB(m->mnt_sb);
349 tcon = cifs_sb->tcon;
349 350
350 if (cifs_sb) { 351 seq_printf(s, ",unc=%s", cifs_sb->tcon->treeName);
351 tcon = cifs_sb->tcon; 352 if (tcon->ses->userName)
352 if (tcon) { 353 seq_printf(s, ",username=%s", tcon->ses->userName);
353 seq_printf(s, ",unc=%s", cifs_sb->tcon->treeName); 354 if (tcon->ses->domainName)
354 if (tcon->ses) { 355 seq_printf(s, ",domain=%s", tcon->ses->domainName);
355 if (tcon->ses->userName) 356
356 seq_printf(s, ",username=%s", 357 cifs_show_address(s, tcon->ses->server);
357 tcon->ses->userName); 358
358 if (tcon->ses->domainName) 359 seq_printf(s, ",uid=%d", cifs_sb->mnt_uid);
359 seq_printf(s, ",domain=%s", 360 seq_printf(s, ",gid=%d", cifs_sb->mnt_gid);
360 tcon->ses->domainName); 361
361 server = tcon->ses->server; 362 server = tcon->ses->server;
362 if (server) { 363 seq_printf(s, ",addr=");
363 seq_printf(s, ",addr="); 364 switch (server->addr.sockAddr6.sin6_family) {
364 switch (server->addr.sockAddr6. 365 case AF_INET6:
365 sin6_family) { 366 seq_printf(s, "%pI6", &server->addr.sockAddr6.sin6_addr);
366 case AF_INET6: 367 break;
367 seq_printf(s, "%pI6", 368 case AF_INET:
368 &server->addr.sockAddr6.sin6_addr); 369 seq_printf(s, "%pI4", &server->addr.sockAddr.sin_addr.s_addr);
369 break; 370 break;
370 case AF_INET: 371 }
371 seq_printf(s, "%pI4", 372
372 &server->addr.sockAddr.sin_addr.s_addr); 373 if (!tcon->unix_ext)
373 break; 374 seq_printf(s, ",file_mode=0%o,dir_mode=0%o",
374 }
375 }
376 }
377 if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_UID) ||
378 !(tcon->unix_ext))
379 seq_printf(s, ",uid=%d", cifs_sb->mnt_uid);
380 if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_GID) ||
381 !(tcon->unix_ext))
382 seq_printf(s, ",gid=%d", cifs_sb->mnt_gid);
383 if (!tcon->unix_ext) {
384 seq_printf(s, ",file_mode=0%o,dir_mode=0%o",
385 cifs_sb->mnt_file_mode, 375 cifs_sb->mnt_file_mode,
386 cifs_sb->mnt_dir_mode); 376 cifs_sb->mnt_dir_mode);
387 } 377 if (tcon->seal)
388 if (tcon->seal) 378 seq_printf(s, ",seal");
389 seq_printf(s, ",seal"); 379 if (tcon->nocase)
390 if (tcon->nocase) 380 seq_printf(s, ",nocase");
391 seq_printf(s, ",nocase"); 381 if (tcon->retry)
392 if (tcon->retry) 382 seq_printf(s, ",hard");
393 seq_printf(s, ",hard"); 383 if (cifs_sb->prepath)
394 } 384 seq_printf(s, ",prepath=%s", cifs_sb->prepath);
395 if (cifs_sb->prepath) 385 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS)
396 seq_printf(s, ",prepath=%s", cifs_sb->prepath); 386 seq_printf(s, ",posixpaths");
397 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) 387 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID)
398 seq_printf(s, ",posixpaths"); 388 seq_printf(s, ",setuids");
399 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID) 389 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM)
400 seq_printf(s, ",setuids"); 390 seq_printf(s, ",serverino");
401 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM) 391 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DIRECT_IO)
402 seq_printf(s, ",serverino"); 392 seq_printf(s, ",directio");
403 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DIRECT_IO) 393 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
404 seq_printf(s, ",directio"); 394 seq_printf(s, ",nouser_xattr");
405 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR) 395 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR)
406 seq_printf(s, ",nouser_xattr"); 396 seq_printf(s, ",mapchars");
407 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR) 397 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL)
408 seq_printf(s, ",mapchars"); 398 seq_printf(s, ",sfu");
409 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) 399 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_BRL)
410 seq_printf(s, ",sfu"); 400 seq_printf(s, ",nobrl");
411 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_BRL) 401 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL)
412 seq_printf(s, ",nobrl"); 402 seq_printf(s, ",cifsacl");
413 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) 403 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM)
414 seq_printf(s, ",cifsacl"); 404 seq_printf(s, ",dynperm");
415 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM) 405 if (m->mnt_sb->s_flags & MS_POSIXACL)
416 seq_printf(s, ",dynperm"); 406 seq_printf(s, ",acl");
417 if (m->mnt_sb->s_flags & MS_POSIXACL) 407
418 seq_printf(s, ",acl"); 408 seq_printf(s, ",rsize=%d", cifs_sb->rsize);
419 409 seq_printf(s, ",wsize=%d", cifs_sb->wsize);
420 seq_printf(s, ",rsize=%d", cifs_sb->rsize); 410
421 seq_printf(s, ",wsize=%d", cifs_sb->wsize);
422 }
423 return 0; 411 return 0;
424} 412}
425 413