ll_frob_intent(&it, &lookup_it);
LASSERT(it);
+ if (it->it_op == IT_LOOKUP && !(de->d_flags & DCACHE_LUSTRE_INVALID))
+ GOTO(out_sa, rc = 1);
+
op_data = ll_prep_md_op_data(NULL, parent, de->d_inode,
de->d_name.name, de->d_name.len,
0, LUSTRE_OPC_ANY, NULL);
owner/group/acls are under lookup lock, we need both
ibits for GETATTR. */
policy.l_inodebits.bits = (it->it_op == IT_GETATTR) ?
- MDS_INODELOCK_UPDATE | MDS_INODELOCK_LOOKUP :
- MDS_INODELOCK_LOOKUP;
+ MDS_INODELOCK_UPDATE : MDS_INODELOCK_LOOKUP;
mode = ldlm_lock_match(exp->exp_obd->obd_namespace,
LDLM_FL_BLOCK_GRANTED, &res_id, LDLM_IBITS,
getc(stdin);
}
+ fprintf(stderr, "accessing (1)\n");
if (access(fname, F_OK) == 0) {
fprintf(stderr, "%s still exists\n", fname2);
exit(1);
}
- fprintf(stderr, "resetting fd offset\n");
+ fprintf(stderr, "seeking (1)\n");
rc = lseek(fd, 0, SEEK_SET);
if (rc) {
fprintf(stderr, "seek %s\n", strerror(errno));
exit(1);
}
+ fprintf(stderr, "accessing (2)\n");
if (access(fname, F_OK) == 0) {
fprintf(stderr, "%s still exists\n", fname);
exit(1);
exit(1);
}
- fprintf(stderr, "seeking\n");
+ fprintf(stderr, "seeking (2)\n");
rc = lseek(fd, 0, SEEK_SET);
if (rc) {
fprintf(stderr, "seek (after unlink trunc) %s\n",
exit(1);
}
- fprintf(stderr, "seeking\n");
+ fprintf(stderr, "seeking (3)\n");
rc = lseek(fd, 0, SEEK_SET);
if (rc) {
fprintf(stderr, "seek (before unlink read) %s\n",