mcctrl sysfs_files: cleanup vfs_readdir -> iterate_dir compat
Cleanup the fix suggested by Fujitsu a bit Change-Id: I95165b834e32a01f43eb3b4fcaca039e4d04fe86
This commit is contained in:
committed by
Masamichi Takagi
parent
05afa8b6dd
commit
625607e6db
@@ -1020,9 +1020,29 @@ struct pci_file_name {
|
|||||||
struct list_head chain;
|
struct list_head chain;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) || \
|
||||||
|
(defined(RHEL_RELEASE_CODE) && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 5))
|
||||||
|
struct mcctrl_filler_args {
|
||||||
|
struct dir_context ctx;
|
||||||
|
void *buf;
|
||||||
|
};
|
||||||
|
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
|
||||||
|
static int pci_file_name_gen(struct dir_context *ctx, const char *name,
|
||||||
|
int namlen, loff_t offset, u64 ino, unsigned int d_type)
|
||||||
|
#else
|
||||||
|
static int pci_file_name_gen(void *ctx, const char *name,
|
||||||
|
int namlen, loff_t offset, u64 ino, unsigned int d_type)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
struct mcctrl_filler_args *args
|
||||||
|
= container_of(ctx, struct mcctrl_filler_args, ctx);
|
||||||
|
void *buf = args->buf;
|
||||||
|
#else
|
||||||
static int pci_file_name_gen(void *buf, const char *name, int namlen,
|
static int pci_file_name_gen(void *buf, const char *name, int namlen,
|
||||||
loff_t offset, u64 ino, unsigned d_type)
|
loff_t offset, u64 ino, unsigned d_type)
|
||||||
{
|
{
|
||||||
|
#endif
|
||||||
struct pci_file_name *p;
|
struct pci_file_name *p;
|
||||||
int error = -1;
|
int error = -1;
|
||||||
|
|
||||||
@@ -1061,49 +1081,21 @@ out:
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int mcctrl_vfs_readdir(struct file *file, filldir_t filler,
|
||||||
|
void *buf)
|
||||||
|
{
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) || \
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0) || \
|
||||||
(defined(RHEL_RELEASE_CODE) && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 5))
|
(defined(RHEL_RELEASE_CODE) && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 5))
|
||||||
typedef int (*mcctrl_filldir_t)(void *buf, const char *name, int namlen,
|
|
||||||
loff_t offset, u64 ino, unsigned d_type);
|
|
||||||
|
|
||||||
struct mcctrl_filler_args {
|
|
||||||
struct dir_context ctx;
|
|
||||||
mcctrl_filldir_t filler;
|
|
||||||
void *buf;
|
|
||||||
};
|
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
|
|
||||||
static int mcctrl_filler(struct dir_context *ctx, const char *name,
|
|
||||||
int namlen, loff_t offset, u64 ino, unsigned int d_type)
|
|
||||||
#else
|
|
||||||
static int mcctrl_filler(void *ctx, const char *name,
|
|
||||||
int namlen, loff_t offset, u64 ino, unsigned int d_type)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
struct mcctrl_filler_args *args
|
|
||||||
= container_of(ctx, struct mcctrl_filler_args, ctx);
|
|
||||||
|
|
||||||
return (*args->filler)(args->buf, name, namlen, offset, ino, d_type);
|
|
||||||
} /* mcctrl_filler() */
|
|
||||||
|
|
||||||
static inline int mcctrl_vfs_readdir(struct file *file,
|
|
||||||
mcctrl_filldir_t filler, void *buf)
|
|
||||||
{
|
|
||||||
struct mcctrl_filler_args args = {
|
struct mcctrl_filler_args args = {
|
||||||
.ctx.actor = &mcctrl_filler,
|
.ctx.actor = filler,
|
||||||
.filler = filler,
|
|
||||||
.buf = buf,
|
.buf = buf,
|
||||||
};
|
};
|
||||||
|
|
||||||
return iterate_dir(file, &args.ctx);
|
return iterate_dir(file, &args.ctx);
|
||||||
} /* mcctrl_vfs_readdir() */
|
|
||||||
#else
|
#else
|
||||||
static inline int mcctrl_vfs_readdir(struct file *file, filldir_t filler,
|
|
||||||
void *buf)
|
|
||||||
{
|
|
||||||
return vfs_readdir(file, filler, buf);
|
return vfs_readdir(file, filler, buf);
|
||||||
} /* mcctrl_vfs_readdir() */
|
|
||||||
#endif
|
#endif
|
||||||
|
} /* mcctrl_vfs_readdir() */
|
||||||
|
|
||||||
static int setup_pci_files(struct mcctrl_usrdata *udp)
|
static int setup_pci_files(struct mcctrl_usrdata *udp)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user