|
@@ -983,6 +983,13 @@ struct file_lock {
|
|
|
|
|
|
#include <linux/fcntl.h>
|
|
|
|
|
|
+extern void send_sigio(struct fown_struct *fown, int fd, int band);
|
|
|
+
|
|
|
+/* fs/sync.c */
|
|
|
+extern int do_sync_mapping_range(struct address_space *mapping, loff_t offset,
|
|
|
+ loff_t endbyte, unsigned int flags);
|
|
|
+
|
|
|
+#ifdef CONFIG_FILE_LOCKING
|
|
|
extern int fcntl_getlk(struct file *, struct flock __user *);
|
|
|
extern int fcntl_setlk(unsigned int, struct file *, unsigned int,
|
|
|
struct flock __user *);
|
|
@@ -993,14 +1000,9 @@ extern int fcntl_setlk64(unsigned int, struct file *, unsigned int,
|
|
|
struct flock64 __user *);
|
|
|
#endif
|
|
|
|
|
|
-extern void send_sigio(struct fown_struct *fown, int fd, int band);
|
|
|
extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg);
|
|
|
extern int fcntl_getlease(struct file *filp);
|
|
|
|
|
|
-/* fs/sync.c */
|
|
|
-extern int do_sync_mapping_range(struct address_space *mapping, loff_t offset,
|
|
|
- loff_t endbyte, unsigned int flags);
|
|
|
-
|
|
|
/* fs/locks.c */
|
|
|
extern void locks_init_lock(struct file_lock *);
|
|
|
extern void locks_copy_lock(struct file_lock *, struct file_lock *);
|
|
@@ -1023,6 +1025,37 @@ 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_write(struct inode *, loff_t start, unsigned long count);
|
|
|
extern struct seq_operations locks_seq_operations;
|
|
|
+#else /* !CONFIG_FILE_LOCKING */
|
|
|
+#define fcntl_getlk(a, b) ({ -EINVAL; })
|
|
|
+#define fcntl_setlk(a, b, c, d) ({ -EACCES; })
|
|
|
+#if BITS_PER_LONG == 32
|
|
|
+#define fcntl_getlk64(a, b) ({ -EINVAL; })
|
|
|
+#define fcntl_setlk64(a, b, c, d) ({ -EACCES; })
|
|
|
+#endif
|
|
|
+#define fcntl_setlease(a, b, c) ({ 0; })
|
|
|
+#define fcntl_getlease(a) ({ 0; })
|
|
|
+#define locks_init_lock(a) ({ })
|
|
|
+#define __locks_copy_lock(a, b) ({ })
|
|
|
+#define locks_copy_lock(a, b) ({ })
|
|
|
+#define locks_remove_posix(a, b) ({ })
|
|
|
+#define locks_remove_flock(a) ({ })
|
|
|
+#define posix_test_lock(a, b) ({ 0; })
|
|
|
+#define posix_lock_file(a, b, c) ({ -ENOLCK; })
|
|
|
+#define posix_lock_file_wait(a, b) ({ -ENOLCK; })
|
|
|
+#define posix_unblock_lock(a, b) (-ENOENT)
|
|
|
+#define vfs_test_lock(a, b) ({ 0; })
|
|
|
+#define vfs_lock_file(a, b, c, d) (-ENOLCK)
|
|
|
+#define vfs_cancel_lock(a, b) ({ 0; })
|
|
|
+#define flock_lock_file_wait(a, b) ({ -ENOLCK; })
|
|
|
+#define __break_lease(a, b) ({ 0; })
|
|
|
+#define lease_get_mtime(a, b) ({ })
|
|
|
+#define generic_setlease(a, b, c) ({ -EINVAL; })
|
|
|
+#define vfs_setlease(a, b, c) ({ -EINVAL; })
|
|
|
+#define lease_modify(a, b) ({ -EINVAL; })
|
|
|
+#define lock_may_read(a, b, c) ({ 1; })
|
|
|
+#define lock_may_write(a, b, c) ({ 1; })
|
|
|
+#endif /* !CONFIG_FILE_LOCKING */
|
|
|
+
|
|
|
|
|
|
struct fasync_struct {
|
|
|
int magic;
|
|
@@ -1554,9 +1587,12 @@ extern int vfs_statfs(struct dentry *, struct kstatfs *);
|
|
|
/* /sys/fs */
|
|
|
extern struct kobject *fs_kobj;
|
|
|
|
|
|
+extern int rw_verify_area(int, struct file *, loff_t *, size_t);
|
|
|
+
|
|
|
#define FLOCK_VERIFY_READ 1
|
|
|
#define FLOCK_VERIFY_WRITE 2
|
|
|
|
|
|
+#ifdef CONFIG_FILE_LOCKING
|
|
|
extern int locks_mandatory_locked(struct inode *);
|
|
|
extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t);
|
|
|
|
|
@@ -1587,8 +1623,6 @@ static inline int locks_verify_locked(struct inode *inode)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-extern int rw_verify_area(int, struct file *, loff_t *, size_t);
|
|
|
-
|
|
|
static inline int locks_verify_truncate(struct inode *inode,
|
|
|
struct file *filp,
|
|
|
loff_t size)
|
|
@@ -1609,6 +1643,15 @@ static inline int break_lease(struct inode *inode, unsigned int mode)
|
|
|
return __break_lease(inode, mode);
|
|
|
return 0;
|
|
|
}
|
|
|
+#else /* !CONFIG_FILE_LOCKING */
|
|
|
+#define locks_mandatory_locked(a) ({ 0; })
|
|
|
+#define locks_mandatory_area(a, b, c, d, e) ({ 0; })
|
|
|
+#define __mandatory_lock(a) ({ 0; })
|
|
|
+#define mandatory_lock(a) ({ 0; })
|
|
|
+#define locks_verify_locked(a) ({ 0; })
|
|
|
+#define locks_verify_truncate(a, b, c) ({ 0; })
|
|
|
+#define break_lease(a, b) ({ 0; })
|
|
|
+#endif /* CONFIG_FILE_LOCKING */
|
|
|
|
|
|
/* fs/open.c */
|
|
|
|