mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-11 05:17:44 +03:00
fd-util: rename loop_get_diskseq() -> fd_get_diskseq()
And move it from loop-util.[ch] -> fd-util.[ch]
This commit is contained in:
parent
2076612f84
commit
7e93a65868
@ -3,6 +3,7 @@
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <linux/btrfs.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/magic.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/resource.h>
|
||||
@ -17,6 +18,7 @@
|
||||
#include "io-util.h"
|
||||
#include "macro.h"
|
||||
#include "missing_fcntl.h"
|
||||
#include "missing_fs.h"
|
||||
#include "missing_syscall.h"
|
||||
#include "parse-util.h"
|
||||
#include "path-util.h"
|
||||
@ -788,3 +790,24 @@ int btrfs_defrag_fd(int fd) {
|
||||
|
||||
return RET_NERRNO(ioctl(fd, BTRFS_IOC_DEFRAG, NULL));
|
||||
}
|
||||
|
||||
int fd_get_diskseq(int fd, uint64_t *ret) {
|
||||
uint64_t diskseq;
|
||||
|
||||
assert(fd >= 0);
|
||||
assert(ret);
|
||||
|
||||
if (ioctl(fd, BLKGETDISKSEQ, &diskseq) < 0) {
|
||||
/* Note that the kernel is weird: non-existing ioctls currently return EINVAL
|
||||
* rather than ENOTTY on loopback block devices. They should fix that in the kernel,
|
||||
* but in the meantime we accept both here. */
|
||||
if (!ERRNO_IS_NOT_SUPPORTED(errno) && errno != EINVAL)
|
||||
return -errno;
|
||||
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
*ret = diskseq;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -109,6 +109,7 @@ static inline int make_null_stdio(void) {
|
||||
int fd_reopen(int fd, int flags);
|
||||
int read_nr_open(void);
|
||||
int btrfs_defrag_fd(int fd);
|
||||
int fd_get_diskseq(int fd, uint64_t *ret);
|
||||
|
||||
/* The maximum length a buffer for a /proc/self/fd/<fd> path needs */
|
||||
#define PROC_FD_PATH_MAX \
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include "fd-util.h"
|
||||
#include "fileio.h"
|
||||
#include "loop-util.h"
|
||||
#include "missing_fs.h"
|
||||
#include "missing_loop.h"
|
||||
#include "parse-util.h"
|
||||
#include "random-util.h"
|
||||
@ -129,27 +128,6 @@ static int device_has_block_children(sd_device *d) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int loop_get_diskseq(int fd, uint64_t *ret_diskseq) {
|
||||
uint64_t diskseq;
|
||||
|
||||
assert(fd >= 0);
|
||||
assert(ret_diskseq);
|
||||
|
||||
if (ioctl(fd, BLKGETDISKSEQ, &diskseq) < 0) {
|
||||
/* Note that the kernel is weird: non-existing ioctls currently return EINVAL
|
||||
* rather than ENOTTY on loopback block devices. They should fix that in the kernel,
|
||||
* but in the meantime we accept both here. */
|
||||
if (!ERRNO_IS_NOT_SUPPORTED(errno) && errno != EINVAL)
|
||||
return -errno;
|
||||
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
*ret_diskseq = diskseq;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int loop_configure(
|
||||
int fd,
|
||||
int nr,
|
||||
@ -454,7 +432,7 @@ static int loop_device_make_internal(
|
||||
if (copy < 0)
|
||||
return copy;
|
||||
|
||||
r = loop_get_diskseq(copy, &diskseq);
|
||||
r = fd_get_diskseq(copy, &diskseq);
|
||||
if (r < 0 && r != -EOPNOTSUPP)
|
||||
return r;
|
||||
|
||||
@ -593,7 +571,7 @@ static int loop_device_make_internal(
|
||||
assert(S_ISBLK(st.st_mode));
|
||||
|
||||
uint64_t diskseq = 0;
|
||||
r = loop_get_diskseq(loop_with_fd, &diskseq);
|
||||
r = fd_get_diskseq(loop_with_fd, &diskseq);
|
||||
if (r < 0 && r != -EOPNOTSUPP)
|
||||
return r;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user