static void test_tsetattr (void) { Npfcall *fc, *fc2; if (!(fc = np_create_tsetattr (1,2,3,4,5,6,7,8,9,10))) msg_exit ("out of memory"); fc2 = _rcv_buf (fc, P9_TSETATTR, __FUNCTION__); assert (fc->u.tsetattr.fid == fc2->u.tsetattr.fid); assert (fc->u.tsetattr.valid == fc2->u.tsetattr.valid); assert (fc->u.tsetattr.mode == fc2->u.tsetattr.mode); assert (fc->u.tsetattr.uid == fc2->u.tsetattr.uid); assert (fc->u.tsetattr.gid == fc2->u.tsetattr.gid); assert (fc->u.tsetattr.size == fc2->u.tsetattr.size); assert (fc->u.tsetattr.atime_sec == fc2->u.tsetattr.atime_sec); assert (fc->u.tsetattr.atime_nsec == fc2->u.tsetattr.atime_nsec); assert (fc->u.tsetattr.mtime_sec == fc2->u.tsetattr.mtime_sec); assert (fc->u.tsetattr.mtime_nsec == fc2->u.tsetattr.mtime_nsec); free (fc); free (fc2); }
int npc_setattr (Npcfid *fid, u32 valid, u32 mode, u32 uid, u32 gid, u64 size, u64 atime_sec, u64 atime_nsec, u64 mtime_sec, u64 mtime_nsec) { Npfcall *tc = NULL, *rc = NULL; int ret = -1; if (!(tc = np_create_tsetattr (fid->fid, valid, mode, uid, gid, size, atime_sec, atime_nsec, mtime_sec, mtime_nsec))) { np_uerror (ENOMEM); goto done; } if (fid->fsys->rpc(fid->fsys, tc, &rc) < 0) goto done; ret = 0; done: if (tc) free(tc); if (rc) free(rc); return ret; }