#ifdef HAVE_FS_IOC_GETFLAGS
bool file_dev::check_for_attr(const char *vol_name, int attr)
{
- int tmp_fd, ioctl_ret, get_attr;
+ int tmp_fd, ioctl_ret;
+ long get_attr = 0, lattr = attr;
bool ret = false;
POOL_MEM fname(PM_FNAME);
Dmsg2(DT_VOLUME|50, "Failed to get attributes for %s, ERR=%s", fname.c_str(), be.bstrerror());
Mmsg2(errmsg, "Failed to get attributes for %s, ERR=%s", fname.c_str(), be.bstrerror());
} else {
- ret = get_attr & attr;
+ ret = get_attr & lattr;
const char *msg_str = ret ? "set" : "not set";
Dmsg3(DT_VOLUME|50, "Attribute: 0x%08x is %s for volume: %s\n",
attr, msg_str, fname.c_str());
bool file_dev::modify_fattr(const char *vol_name, int attr, bool set)
{
bool ret = false;
- int tmp_fd, ioctl_ret, get_attr, set_attr;
+ int tmp_fd, ioctl_ret;
+ long get_attr = 0, set_attr = 0, lattr = attr;
const char *msg_str = set ? "set" : "cleared";
POOL_MEM fname(PM_FNAME);
if (set) {
/* Add new attribute to the currently set ones */
- set_attr = get_attr | attr;
+ set_attr = get_attr | lattr;
} else {
/* Inverse the desired attribute and later and it with the current state
* so that we clear only desired flag and do not touch all the rest */
- int rev_mask = ~attr;
+ long rev_mask = ~lattr;
set_attr = get_attr & rev_mask;
}