From: Sri P. <sri...@gm...> - 2007-06-12 06:11:37
|
Hi, In the lowlevel fuse read callback : void (*read) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, struct fuse_file_info *fi); The "size" parameter specifies how many bytes fuse is expecting from us right? And once this request is satisfied by the client side, the buffer is passed with fuse_reply_buf right? Now is there a way to limit this value to say 8 k or some specific value? I am asking this because, with a no-limit size parameter, the client side callback would have to create this buffer each time on the heap and deallocate as soon as it calls the fuse_reply_buf. Obviously this is pretty inefficient. Ive also tried limiting the buffer size on the client side (to say 4 K or 8K) and repeatedly calling fuse_reply_buf until the entire amount is satisfied (eg a 15K request would result in 4 fuse_reply_buf calls). However this hangs up after the first call. Can you offer any suggestions on how to avoid the creation of the buffer on the heap (without resorting to globals and some custom memory pooling)? Appreciate it. Cheers Sri |