mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
fs: remove vfs_statx_fd
vfs_statx_fd is only used to implement vfs_fstat. Remove vfs_statx_fd and just implement vfs_fstat directly. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
committed by
Al Viro
parent
a7c9df0446
commit
da9aa5d96b
22
fs/stat.c
22
fs/stat.c
@@ -126,35 +126,27 @@ int vfs_getattr(const struct path *path, struct kstat *stat,
|
|||||||
EXPORT_SYMBOL(vfs_getattr);
|
EXPORT_SYMBOL(vfs_getattr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vfs_statx_fd - Get the enhanced basic attributes by file descriptor
|
* vfs_fstat - Get the basic attributes by file descriptor
|
||||||
* @fd: The file descriptor referring to the file of interest
|
* @fd: The file descriptor referring to the file of interest
|
||||||
* @stat: The result structure to fill in.
|
* @stat: The result structure to fill in.
|
||||||
* @request_mask: STATX_xxx flags indicating what the caller wants
|
|
||||||
* @query_flags: Query mode (KSTAT_QUERY_FLAGS)
|
|
||||||
*
|
*
|
||||||
* This function is a wrapper around vfs_getattr(). The main difference is
|
* This function is a wrapper around vfs_getattr(). The main difference is
|
||||||
* that it uses a file descriptor to determine the file location.
|
* that it uses a file descriptor to determine the file location.
|
||||||
*
|
*
|
||||||
* 0 will be returned on success, and a -ve error code if unsuccessful.
|
* 0 will be returned on success, and a -ve error code if unsuccessful.
|
||||||
*/
|
*/
|
||||||
int vfs_statx_fd(unsigned int fd, struct kstat *stat,
|
int vfs_fstat(int fd, struct kstat *stat)
|
||||||
u32 request_mask, unsigned int query_flags)
|
|
||||||
{
|
{
|
||||||
struct fd f;
|
struct fd f;
|
||||||
int error = -EBADF;
|
int error;
|
||||||
|
|
||||||
if (query_flags & ~KSTAT_QUERY_FLAGS)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
f = fdget_raw(fd);
|
f = fdget_raw(fd);
|
||||||
if (f.file) {
|
if (!f.file)
|
||||||
error = vfs_getattr(&f.file->f_path, stat,
|
return -EBADF;
|
||||||
request_mask, query_flags);
|
error = vfs_getattr(&f.file->f_path, stat, STATX_BASIC_STATS, 0);
|
||||||
fdput(f);
|
fdput(f);
|
||||||
}
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(vfs_statx_fd);
|
|
||||||
|
|
||||||
static inline unsigned vfs_stat_set_lookup_flags(unsigned *lookup_flags,
|
static inline unsigned vfs_stat_set_lookup_flags(unsigned *lookup_flags,
|
||||||
int flags)
|
int flags)
|
||||||
|
@@ -3163,7 +3163,7 @@ extern const struct inode_operations simple_symlink_inode_operations;
|
|||||||
extern int iterate_dir(struct file *, struct dir_context *);
|
extern int iterate_dir(struct file *, struct dir_context *);
|
||||||
|
|
||||||
extern int vfs_statx(int, const char __user *, int, struct kstat *, u32);
|
extern int vfs_statx(int, const char __user *, int, struct kstat *, u32);
|
||||||
extern int vfs_statx_fd(unsigned int, struct kstat *, u32, unsigned int);
|
int vfs_fstat(int fd, struct kstat *stat);
|
||||||
|
|
||||||
static inline int vfs_stat(const char __user *filename, struct kstat *stat)
|
static inline int vfs_stat(const char __user *filename, struct kstat *stat)
|
||||||
{
|
{
|
||||||
@@ -3181,11 +3181,6 @@ static inline int vfs_fstatat(int dfd, const char __user *filename,
|
|||||||
return vfs_statx(dfd, filename, flags | AT_NO_AUTOMOUNT,
|
return vfs_statx(dfd, filename, flags | AT_NO_AUTOMOUNT,
|
||||||
stat, STATX_BASIC_STATS);
|
stat, STATX_BASIC_STATS);
|
||||||
}
|
}
|
||||||
static inline int vfs_fstat(int fd, struct kstat *stat)
|
|
||||||
{
|
|
||||||
return vfs_statx_fd(fd, stat, STATX_BASIC_STATS, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
extern const char *vfs_get_link(struct dentry *, struct delayed_call *);
|
extern const char *vfs_get_link(struct dentry *, struct delayed_call *);
|
||||||
extern int vfs_readlink(struct dentry *, char __user *, int);
|
extern int vfs_readlink(struct dentry *, char __user *, int);
|
||||||
|
Reference in New Issue
Block a user