<div dir="ltr"><div dir="ltr"><div>Hello,</div><div><br></div><div>I already open a bug:</div><div><a href="https://bugzilla.redhat.com/show_bug.cgi?id=1678726">https://bugzilla.redhat.com/show_bug.cgi?id=1678726</a><br></div><div><br></div><div>There is also a link to a bug fix patch</div><div><br></div><div>Regards</div><div>David Spisla<br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Di., 19. Feb. 2019 um 13:07 Uhr schrieb David Spisla &lt;<a href="mailto:spisla80@gmail.com">spisla80@gmail.com</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>Hi folks,</div><div><br></div><div>The &#39;struct md_cache&#39; in md-cache.c uses int data types which are not in common with the data types used in the &#39;struct iatt&#39; in iatt.h . If one take a closer look to the implementations one can see that the struct in md-cache.c uses still the int data types like in the struct &#39;old_iatt&#39; . This can lead to unexpected side effects and some values of iatt maybe will not mapped correctly. I would suggest to open a bug report. What do you think?<br><br>Additional info:<br><br>struct md_cache {<br>    ia_prot_t md_prot;<br>    uint32_t md_nlink;<br>    uint32_t md_uid;<br>    uint32_t md_gid;<br>    uint32_t md_atime;<br>    uint32_t md_atime_nsec;<br>    uint32_t md_mtime;<br>    uint32_t md_mtime_nsec;<br>    uint32_t md_ctime;<br>    uint32_t md_ctime_nsec;<br>    uint64_t md_rdev;<br>    uint64_t md_size;<br>    uint64_t md_blocks;<br>    uint64_t invalidation_time;<br>    uint64_t generation;<br>    dict_t *xattr;<br>    char *linkname;<br>    time_t ia_time;<br>    time_t xa_time;<br>    gf_boolean_t need_lookup;<br>    gf_boolean_t valid;<br>    gf_boolean_t gen_rollover;<br>    gf_boolean_t invalidation_rollover;<br>    gf_lock_t lock;<br>};<br><br>struct iatt {<br>    uint64_t ia_flags;<br>    uint64_t ia_ino;     /* inode number */<br>    uint64_t ia_dev;     /* backing device ID */<br>    uint64_t ia_rdev;    /* device ID (if special file) */<br>    uint64_t ia_size;    /* file size in bytes */<br>    uint32_t ia_nlink;   /* Link count */<br>    uint32_t ia_uid;     /* user ID of owner */<br>    uint32_t ia_gid;     /* group ID of owner */<br>    uint32_t ia_blksize; /* blocksize for filesystem I/O */<br>    uint64_t ia_blocks;  /* number of 512B blocks allocated */<br>    int64_t ia_atime;    /* last access time */<br>    int64_t ia_mtime;    /* last modification time */<br>    int64_t ia_ctime;    /* last status change time */<br>    int64_t ia_btime;    /* creation time. Fill using statx */<br>    uint32_t ia_atime_nsec;<br>    uint32_t ia_mtime_nsec;<br>    uint32_t ia_ctime_nsec;<br>    uint32_t ia_btime_nsec;<br>    uint64_t ia_attributes;      /* chattr related:compressed, immutable,<br>                                  * append only, encrypted etc.*/<br>    uint64_t ia_attributes_mask; /* Mask for the attributes */<br><br>    uuid_t ia_gfid;<br>    ia_type_t ia_type; /* type of file */<br>    ia_prot_t ia_prot; /* protection */<br>};<br><br>struct old_iatt {<br>    uint64_t ia_ino; /* inode number */<br>    uuid_t ia_gfid;<br>    uint64_t ia_dev;     /* backing device ID */<br>    ia_type_t ia_type;   /* type of file */<br>    ia_prot_t ia_prot;   /* protection */<br>    uint32_t ia_nlink;   /* Link count */<br>    uint32_t ia_uid;     /* user ID of owner */<br>    uint32_t ia_gid;     /* group ID of owner */<br>    uint64_t ia_rdev;    /* device ID (if special file) */<br>    uint64_t ia_size;    /* file size in bytes */<br>    uint32_t ia_blksize; /* blocksize for filesystem I/O */<br>    uint64_t ia_blocks;  /* number of 512B blocks allocated */<br>    uint32_t ia_atime;   /* last access time */<br>    uint32_t ia_atime_nsec;<br>    uint32_t ia_mtime; /* last modification time */<br>    uint32_t ia_mtime_nsec;<br>    uint32_t ia_ctime; /* last status change time */<br>    uint32_t ia_ctime_nsec;<br>};<br></div></div></div>
</blockquote></div>