src/dirbuf.c
changeset 26 61668c57f4bb
parent 7 3a603d755bcb
child 27 461be4cd34a3
equal deleted inserted replaced
25:99a41f48e29b 26:61668c57f4bb
    18     // ok
    18     // ok
    19     return 0;
    19     return 0;
    20 
    20 
    21 error:
    21 error:
    22     return -1;
    22     return -1;
       
    23 }
       
    24 
       
    25 size_t difbuf_estimate (size_t req_size, size_t min_namelen) {
       
    26     char namebuf[DIRBUF_NAME_MAX];
       
    27     int i;
       
    28     
       
    29     // build a dummy string of the right length
       
    30     for (i = 0; i < min_namelen && i < DIRBUF_NAME_MAX - 1; i++)
       
    31         namebuf[i] = 'x';
       
    32 
       
    33     namebuf[i] = '\0';
       
    34 
       
    35     return req_size / (fuse_add_direntry(NULL, NULL, 0, namebuf, NULL, 0));
    23 }
    36 }
    24 
    37 
    25 int dirbuf_add (fuse_req_t req, off_t req_off, struct dirbuf *buf, off_t ent_off, off_t next_off, const char *ent_name, fuse_ino_t ent_ino, mode_t ent_mode) {
    38 int dirbuf_add (fuse_req_t req, off_t req_off, struct dirbuf *buf, off_t ent_off, off_t next_off, const char *ent_name, fuse_ino_t ent_ino, mode_t ent_mode) {
    26     struct stat stbuf;
    39     struct stat stbuf;
    27     size_t ent_size;
    40     size_t ent_size;