Guest User

Untitled

a guest
Jun 20th, 2018
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.01 KB | None | 0 0
  1. /*
  2.  * VFS Operations.
  3.  *
  4.  * mount system call
  5.  */
  6. int
  7. nfs_vfs_mount(mount_t mp, vnode_t vp, user_addr_t data, vfs_context_t ctx)
  8. {
  9.     // ...
  10.     switch (argsversion) {
  11.     // ...
  12.     case 6:
  13.         /* convert old-style args to xdr */
  14.         error = nfs_convert_old_nfs_args(mp, data, ctx, argsversion, inkernel, &xdrbuf);
  15.         break;
  16. }
  17.  
  18.  
  19. /*
  20.  * Convert old style NFS mount args to XDR.
  21.  */
  22. static int
  23. nfs_convert_old_nfs_args(mount_t mp, user_addr_t data, vfs_context_t ctx, int argsversion, int inkernel, char **xdrbufp)
  24. {
  25.     // ...
  26.     struct sockaddr_storage ss;
  27.     // ...
  28.     /* copy socket address */
  29.     if (inkernel)
  30.         bcopy(CAST_DOWN(void *, args.addr), &ss, args.addrlen);
  31.     else
  32.         error = copyin(args.addr, &ss, args.addrlen);
  33.     /* versus
  34.     else {
  35.         if ((size_t)args.addrlen > sizeof (struct sockaddr_storage))
  36.             error = EINVAL;
  37.         else
  38.             error = copyin(args.addr, &ss, args.addrlen);
  39.     }*/
  40.     nfsmout_if(error);
  41.     // ...
  42. }
Add Comment
Please, Sign In to add comment