[Gluster-devel] md-cache: May bug found in md-cache.c
Amar Tumballi Suryanarayan
atumball at redhat.com
Wed Feb 20 13:17:38 UTC 2019
Hi David,
Thanks for the patch, it got merged in master now. Can you please post it
into release branches, so we can take them in release-6, release-5 branch,
so next releases can have them.
Regards,
Amar
On Tue, Feb 19, 2019 at 8:49 PM David Spisla <spisla80 at gmail.com> wrote:
> Hello,
>
> I already open a bug:
> https://bugzilla.redhat.com/show_bug.cgi?id=1678726
>
> There is also a link to a bug fix patch
>
> Regards
> David Spisla
>
> Am Di., 19. Feb. 2019 um 13:07 Uhr schrieb David Spisla <
> spisla80 at gmail.com>:
>
>> Hi folks,
>>
>> The 'struct md_cache' in md-cache.c uses int data types which are not in
>> common with the data types used in the 'struct iatt' 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 'old_iatt' .
>> 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?
>>
>> Additional info:
>>
>> struct md_cache {
>> ia_prot_t md_prot;
>> uint32_t md_nlink;
>> uint32_t md_uid;
>> uint32_t md_gid;
>> uint32_t md_atime;
>> uint32_t md_atime_nsec;
>> uint32_t md_mtime;
>> uint32_t md_mtime_nsec;
>> uint32_t md_ctime;
>> uint32_t md_ctime_nsec;
>> uint64_t md_rdev;
>> uint64_t md_size;
>> uint64_t md_blocks;
>> uint64_t invalidation_time;
>> uint64_t generation;
>> dict_t *xattr;
>> char *linkname;
>> time_t ia_time;
>> time_t xa_time;
>> gf_boolean_t need_lookup;
>> gf_boolean_t valid;
>> gf_boolean_t gen_rollover;
>> gf_boolean_t invalidation_rollover;
>> gf_lock_t lock;
>> };
>>
>> struct iatt {
>> uint64_t ia_flags;
>> uint64_t ia_ino; /* inode number */
>> uint64_t ia_dev; /* backing device ID */
>> uint64_t ia_rdev; /* device ID (if special file) */
>> uint64_t ia_size; /* file size in bytes */
>> uint32_t ia_nlink; /* Link count */
>> uint32_t ia_uid; /* user ID of owner */
>> uint32_t ia_gid; /* group ID of owner */
>> uint32_t ia_blksize; /* blocksize for filesystem I/O */
>> uint64_t ia_blocks; /* number of 512B blocks allocated */
>> int64_t ia_atime; /* last access time */
>> int64_t ia_mtime; /* last modification time */
>> int64_t ia_ctime; /* last status change time */
>> int64_t ia_btime; /* creation time. Fill using statx */
>> uint32_t ia_atime_nsec;
>> uint32_t ia_mtime_nsec;
>> uint32_t ia_ctime_nsec;
>> uint32_t ia_btime_nsec;
>> uint64_t ia_attributes; /* chattr related:compressed, immutable,
>> * append only, encrypted etc.*/
>> uint64_t ia_attributes_mask; /* Mask for the attributes */
>>
>> uuid_t ia_gfid;
>> ia_type_t ia_type; /* type of file */
>> ia_prot_t ia_prot; /* protection */
>> };
>>
>> struct old_iatt {
>> uint64_t ia_ino; /* inode number */
>> uuid_t ia_gfid;
>> uint64_t ia_dev; /* backing device ID */
>> ia_type_t ia_type; /* type of file */
>> ia_prot_t ia_prot; /* protection */
>> uint32_t ia_nlink; /* Link count */
>> uint32_t ia_uid; /* user ID of owner */
>> uint32_t ia_gid; /* group ID of owner */
>> uint64_t ia_rdev; /* device ID (if special file) */
>> uint64_t ia_size; /* file size in bytes */
>> uint32_t ia_blksize; /* blocksize for filesystem I/O */
>> uint64_t ia_blocks; /* number of 512B blocks allocated */
>> uint32_t ia_atime; /* last access time */
>> uint32_t ia_atime_nsec;
>> uint32_t ia_mtime; /* last modification time */
>> uint32_t ia_mtime_nsec;
>> uint32_t ia_ctime; /* last status change time */
>> uint32_t ia_ctime_nsec;
>> };
>>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> https://lists.gluster.org/mailman/listinfo/gluster-devel
--
Amar Tumballi (amarts)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-devel/attachments/20190220/514917eb/attachment.html>
More information about the Gluster-devel
mailing list