Commit c2aca5e5 authored by Steven Whitehouse's avatar Steven Whitehouse Committed by Al Viro

vfs: Update fs.h to use inline functions when no file locking set

This avoids various issues which might give rise to compiler warnings
about missing functions and/or unused variable with the previous
macros. This also fixes a bug where one of the macros was returning
0, but it should have been void.
Reported-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
Tested-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 10f303ae
...@@ -1063,34 +1063,147 @@ extern int lease_modify(struct file_lock **, int); ...@@ -1063,34 +1063,147 @@ extern int lease_modify(struct file_lock **, int);
extern int lock_may_read(struct inode *, loff_t start, unsigned long count); extern int lock_may_read(struct inode *, loff_t start, unsigned long count);
extern int lock_may_write(struct inode *, loff_t start, unsigned long count); extern int lock_may_write(struct inode *, loff_t start, unsigned long count);
#else /* !CONFIG_FILE_LOCKING */ #else /* !CONFIG_FILE_LOCKING */
#define fcntl_getlk(a, b) ({ -EINVAL; }) static inline int fcntl_getlk(struct file *file, struct flock __user *user)
#define fcntl_setlk(a, b, c, d) ({ -EACCES; }) {
return -EINVAL;
}
static inline int fcntl_setlk(unsigned int fd, struct file *file,
unsigned int cmd, struct flock __user *user)
{
return -EACCES;
}
#if BITS_PER_LONG == 32 #if BITS_PER_LONG == 32
#define fcntl_getlk64(a, b) ({ -EINVAL; }) static inline int fcntl_getlk64(struct file *file, struct flock64 __user *user)
#define fcntl_setlk64(a, b, c, d) ({ -EACCES; }) {
return -EINVAL;
}
static inline int fcntl_setlk64(unsigned int fd, struct file *file,
unsigned int cmd, struct flock64 __user *user)
{
return -EACCES;
}
#endif #endif
#define fcntl_setlease(a, b, c) ({ 0; }) static inline int fcntl_setlease(unsigned int fd, struct file *filp, long arg)
#define fcntl_getlease(a) ({ 0; }) {
#define locks_init_lock(a) ({ }) return 0;
#define __locks_copy_lock(a, b) ({ }) }
#define locks_copy_lock(a, b) ({ })
#define locks_remove_posix(a, b) ({ }) static inline int fcntl_getlease(struct file *filp)
#define locks_remove_flock(a) ({ }) {
#define posix_test_lock(a, b) ({ 0; }) return 0;
#define posix_lock_file(a, b, c) ({ -ENOLCK; }) }
#define posix_lock_file_wait(a, b) ({ -ENOLCK; })
#define posix_unblock_lock(a, b) (-ENOENT) static inline void locks_init_lock(struct file_lock *fl)
#define vfs_test_lock(a, b) ({ 0; }) {
#define vfs_lock_file(a, b, c, d) (-ENOLCK) return;
#define vfs_cancel_lock(a, b) ({ 0; }) }
#define flock_lock_file_wait(a, b) ({ -ENOLCK; })
#define __break_lease(a, b) ({ 0; }) static inline void __locks_copy_lock(struct file_lock *new, struct file_lock *fl)
#define lease_get_mtime(a, b) ({ }) {
#define generic_setlease(a, b, c) ({ -EINVAL; }) return;
#define vfs_setlease(a, b, c) ({ -EINVAL; }) }
#define lease_modify(a, b) ({ -EINVAL; })
#define lock_may_read(a, b, c) ({ 1; }) static inline void locks_copy_lock(struct file_lock *new, struct file_lock *fl)
#define lock_may_write(a, b, c) ({ 1; }) {
return;
}
static inline void locks_remove_posix(struct file *filp, fl_owner_t owner)
{
return;
}
static inline void locks_remove_flock(struct file *filp)
{
return;
}
static inline void posix_test_lock(struct file *filp, struct file_lock *fl)
{
return;
}
static inline int posix_lock_file(struct file *filp, struct file_lock *fl,
struct file_lock *conflock)
{
return -ENOLCK;
}
static inline int posix_lock_file_wait(struct file *filp, struct file_lock *fl)
{
return -ENOLCK;
}
static inline int posix_unblock_lock(struct file *filp,
struct file_lock *waiter)
{
return -ENOENT;
}
static inline int vfs_test_lock(struct file *filp, struct file_lock *fl)
{
return 0;
}
static inline int vfs_lock_file(struct file *filp, unsigned int cmd,
struct file_lock *fl, struct file_lock *conf)
{
return -ENOLCK;
}
static inline int vfs_cancel_lock(struct file *filp, struct file_lock *fl)
{
return 0;
}
static inline int flock_lock_file_wait(struct file *filp,
struct file_lock *request)
{
return -ENOLCK;
}
static inline int __break_lease(struct inode *inode, unsigned int mode)
{
return 0;
}
static inline void lease_get_mtime(struct inode *inode, struct timespec *time)
{
return;
}
static inline int generic_setlease(struct file *filp, long arg,
struct file_lock **flp)
{
return -EINVAL;
}
static inline int vfs_setlease(struct file *filp, long arg,
struct file_lock **lease)
{
return -EINVAL;
}
static inline int lease_modify(struct file_lock **before, int arg)
{
return -EINVAL;
}
static inline int lock_may_read(struct inode *inode, loff_t start,
unsigned long len)
{
return 1;
}
static inline int lock_may_write(struct inode *inode, loff_t start,
unsigned long len)
{
return 1;
}
#endif /* !CONFIG_FILE_LOCKING */ #endif /* !CONFIG_FILE_LOCKING */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment