Changeset View
Changeset View
Standalone View
Standalone View
src/engine/fsutils.cpp
Show First 20 Lines • Show All 86 Lines • ▼ Show 20 Line(s) | 85 | #endif | |||
---|---|---|---|---|---|
87 | ulong flags = 0; | 87 | ulong flags = 0; | ||
88 | const int fd = open(qPrintable(path), O_RDONLY); | 88 | const int fd = open(qPrintable(path), O_RDONLY); | ||
89 | if (fd == -1) { | 89 | if (fd == -1) { | ||
90 | qWarning() << "Failed to open" << path << "to modify flags (" << errno << ")"; | 90 | qWarning() << "Failed to open" << path << "to modify flags (" << errno << ")"; | ||
91 | return; | 91 | return; | ||
92 | } | 92 | } | ||
93 | 93 | | |||
94 | if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == -1) { | 94 | if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == -1) { | ||
95 | qWarning() << "ioctl error: failed to get file flags (" << errno << ")"; | 95 | const int errno_ioctl = errno; | ||
96 | // ignore ENOTTY, filesystem does not support attrs (and likely neither supports COW) | ||||
97 | if (errno_ioctl != ENOTTY) { | ||||
98 | qWarning() << "ioctl error: failed to get file flags (" << errno_ioctl << ")"; | ||||
99 | } | ||||
96 | close(fd); | 100 | close(fd); | ||
97 | return; | 101 | return; | ||
98 | } | 102 | } | ||
99 | if (!(flags & FS_NOCOW_FL)) { | 103 | if (!(flags & FS_NOCOW_FL)) { | ||
100 | flags |= FS_NOCOW_FL; | 104 | flags |= FS_NOCOW_FL; | ||
101 | if (ioctl(fd, FS_IOC_SETFLAGS, &flags) == -1) { | 105 | if (ioctl(fd, FS_IOC_SETFLAGS, &flags) == -1) { | ||
102 | qWarning() << "ioctl error: failed to set file flags (" << errno << ")"; | 106 | const int errno_ioctl = errno; | ||
107 | // ignore EOPNOTSUPP, returned on filesystems not supporting COW | ||||
108 | if (errno_ioctl != EOPNOTSUPP) { | ||||
109 | qWarning() << "ioctl error: failed to set file flags (" << errno_ioctl << ")"; | ||||
110 | } | ||||
103 | close(fd); | 111 | close(fd); | ||
104 | return; | 112 | return; | ||
105 | } | 113 | } | ||
106 | } | 114 | } | ||
107 | close(fd); | 115 | close(fd); | ||
108 | #endif | 116 | #endif | ||
109 | } | 117 | } | ||
110 | 118 | | |||
Show All 27 Lines |