Hello Amar,
it should be done. Thank you for the explanation
Regards
David
Von: Amar Tumballi Suryanarayan <atumball@xxxxxxxxxx>
Gesendet: Mittwoch, 20. Februar 2019 14:55
An: David Spisla <david.spisla@xxxxxxxxxxxx>
Cc: Gluster Devel <gluster-devel@xxxxxxxxxxx>
Betreff: Re: [Gluster-devel] md-cache: May bug found in md-cache.c
Hi David,
But easiest is to go to your patch (https://review.gluster.org/22234), and then click on 'Cherry Pick' button. In the pop-up, 'branch:' field, give 'release-6' and Submit. If you want it in
release-5 branch too, repeat the same, with branch being 'release-5'. Siimlarly we need 'clone-of' bug for both the branches (the original bug used in patch is for master branch).
That should be it. Rest, we can take care.
Hello Amar,
no problem. How can I do that? Can you please tell me the procedure?
Regards
David
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.
There is also a link to a bug fix patch
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@xxxxxxxxxxx
https://lists.gluster.org/mailman/listinfo/gluster-devel
--
--
|
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
https://lists.gluster.org/mailman/listinfo/gluster-devel