/[hurd]/hurd/trans/fakeroot.c
ViewVC logotype

Diff of /hurd/trans/fakeroot.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by roland, Sun May 5 20:26:32 2002 UTC revision 1.6 by marcus, Mon May 6 00:40:14 2002 UTC
# Line 342  netfs_attempt_lookup (struct iouser *use Line 342  netfs_attempt_lookup (struct iouser *use
342        flags = O_RDWR;        flags = O_RDWR;
343        file = file_name_lookup_under (dirfile, name, flags | O_NOLINK, 0);        file = file_name_lookup_under (dirfile, name, flags | O_NOLINK, 0);
344      }      }
345    if (file == MACH_PORT_NULL && errno == EACCES)    if (file == MACH_PORT_NULL && (errno == EACCES
346                                     || errno == EROFS || errno == EISDIR))
347      {      {
348        flags = O_READ|O_EXEC;        flags = O_READ|O_EXEC;
349        file = file_name_lookup_under (dirfile, name, flags | O_NOLINK, 0);        file = file_name_lookup_under (dirfile, name, flags | O_NOLINK, 0);
# Line 456  netfs_attempt_mkfile (struct iouser *use Line 457  netfs_attempt_mkfile (struct iouser *use
457                              real_from_fake_mode (mode), &newfile);                              real_from_fake_mode (mode), &newfile);
458    if (err == 0)    if (err == 0)
459      err = new_node (newfile, MACH_PORT_NULL, O_RDWR|O_EXEC, np);      err = new_node (newfile, MACH_PORT_NULL, O_RDWR|O_EXEC, np);
460      mutex_unlock (&dir->lock);
461    return err;    return err;
462  }  }
463    
# Line 466  netfs_attempt_create_file (struct iouser Line 468  netfs_attempt_create_file (struct iouser
468    file_t newfile = file_name_lookup_under (dir->nn->file, name,    file_t newfile = file_name_lookup_under (dir->nn->file, name,
469                                             O_CREAT|O_RDWR|O_EXEC,                                             O_CREAT|O_RDWR|O_EXEC,
470                                             real_from_fake_mode (mode));                                             real_from_fake_mode (mode));
471      mutex_unlock (&dir->lock);
472    if (newfile == MACH_PORT_NULL)    if (newfile == MACH_PORT_NULL)
473      return errno;      return errno;
474    return new_node (newfile, MACH_PORT_NULL, O_RDWR|O_EXEC, np);    return new_node (newfile, MACH_PORT_NULL, O_RDWR|O_EXEC, np);
# Line 561  netfs_file_get_storage_info (struct ious Line 564  netfs_file_get_storage_info (struct ious
564                                  offsets, num_offsets,                                  offsets, num_offsets,
565                                  data, data_len);                                  data, data_len);
566  }  }
567    
568    error_t
569    netfs_S_io_map (struct protid *user,
570                    mach_port_t *rdobj, mach_msg_type_name_t *rdobjtype,
571                    mach_port_t *wrobj, mach_msg_type_name_t *wrobjtype)
572    {
573      error_t err;
574    
575      if (!user)
576        return EOPNOTSUPP;
577      *rdobjtype = *wrobjtype = MACH_MSG_TYPE_MOVE_SEND;
578    
579      mutex_lock (&user->po->np->lock);
580      err = io_map (user->po->np->nn->file, rdobj, wrobj);
581      mutex_unlock (&user->po->np->lock);
582      return err;
583    }
584    
585    
586  int  int
587  main (int argc, char **argv)  main (int argc, char **argv)

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26