struct stat *st;
uint16_t bshort;
struct path *s_path;
- struct stat xxx;
ibuf++;
fork = *ibuf++;
}
}
- if ((opened = of_findname(s_path))) {
+ if ((opened = of_findname(vol, s_path))) {
adsame = opened->of_ad;
}
} else {
eid = ADEID_RFORK;
adflags |= ADFLAGS_RF;
- if (!(access & OPENACC_WR))
- adflags |= ADFLAGS_NORF;
}
if (access & OPENACC_WR) {
static int read_file(const struct ofork *ofork, int eid, off_t offset, char *rbuf, size_t *rbuflen)
{
ssize_t cc;
- int eof = 0;
- char *p, *q;
cc = ad_read(ofork->of_ad, eid, offset, rbuf, *rbuflen);
if ( cc < 0 ) {
goto afp_read_err;
}
+ AFP_READ_START((long)reqcount);
+
/* reqcount isn't always truthful. we need to deal with that. */
size = ad_size(ofork->of_ad, eid);
afp_read_done:
if (obj->options.flags & OPTION_AFP_READ_LOCK)
ad_tmplock(ofork->of_ad, eid, ADLOCK_CLR, saveoff, savereqcount, ofork->of_refnum);
+
+ AFP_READ_DONE();
return err;
afp_read_err:
ofork->of_refnum, (ofork->of_flags & AFPFORK_DATA) ? "data" : "rsrc");
if (of_closefork(obj, ofork) < 0 ) {
- LOG(log_error, logtype_afpd, "afp_closefork(%s): of_closefork: %s", of_name(ofork), strerror(errno) );
+ LOG(log_error, logtype_afpd, "afp_closefork: of_closefork: %s", strerror(errno) );
return( AFPERR_PARAM );
}
off_t offset, char *rbuf,
size_t rbuflen)
{
- char *p, *q;
ssize_t cc;
LOG(log_debug, logtype_afpd, "write_file(off: %ju, size: %zu)",
uint16_t ofrefnum;
ssize_t cc;
DSI *dsi = obj->dsi;
- char *rcvbuf = dsi->commands;
+ char *rcvbuf = (char *)dsi->commands;
size_t rcvbuflen = dsi->server_quantum;
/* figure out parameters */
goto afp_write_err;
}
+ AFP_WRITE_START((long)reqcount);
+
saveoff = offset;
if (obj->options.flags & OPTION_AFP_READ_LOCK) {
if (ad_tmplock(ofork->of_ad, eid, ADLOCK_WR, saveoff, reqcount, ofork->of_refnum) < 0) {
ofork->of_vol->v_appended += (newsize > oldsize) ? (newsize - oldsize) : 0;
*rbuflen = set_off_t (offset, rbuf, is64);
+ AFP_WRITE_DONE();
return( AFP_OK );
afp_write_err: