Exemple #1
0
void
afsusrdir::clrulink (const str &name)
{
  negcache.remove (name);
  unlink (name);
  bumpmtime ();
}
Exemple #2
0
bool
afsdir::link (afsnode *node, const str &name)
{
  if (entries[name])
    return false;
  vNew afsdirentry (this, name, node);
  bumpmtime ();
  return true;
}
Exemple #3
0
bool
afsdir::unlink (const str &name)
{
  afsdirentry *e = entries[name];
  if (e) {
    bumpmtime ();
    delete e;
  }
  return e;
}
Exemple #4
0
void
afsroot::mkfattr3 (fattr3 *f, sfs_aid aid)
{
  /* BSD needs the seconds (not just milliseconds/nanoseconds) of the
   * mtime to change on every lookup/getattr in order to defeat the
   * name cache. */
  if (aid != lastaid) {
    lastaid = aid;
    bumpmtime ();
  }
  afsdir::mkfattr3 (f, aid);
  if (afsdir *d = userdir (aid)) {
    if (d != afs_naroot)
      f->mode |= 0222;
    f->nlink += d->getnlinks () - 2;
  }
}