mirror of
https://github.com/hardkernel/linux.git
synced 2026-04-01 10:42:58 +09:00
Changes in 4.9.51 ipv6: accept 64k - 1 packet length in ip6_find_1stfragopt() ipv6: add rcu grace period before freeing fib6_node ipv6: fix sparse warning on rt6i_node macsec: add genl family module alias udp: on peeking bad csum, drop packets even if not at head fsl/man: Inherit parent device and of_node sctp: Avoid out-of-bounds reads from address storage qlge: avoid memcpy buffer overflow netvsc: fix deadlock betwen link status and removal cxgb4: Fix stack out-of-bounds read due to wrong size to t4_record_mbox() packet: Don't write vnet header beyond end of buffer kcm: do not attach PF_KCM sockets to avoid deadlock Revert "net: phy: Correctly process PHY_HALTED in phy_stop_machine()" tcp: initialize rcv_mss to TCP_MIN_MSS instead of 0 mlxsw: spectrum: Forbid linking to devices that have uppers bridge: switchdev: Clear forward mark when transmitting packet Revert "net: use lib/percpu_counter API for fragmentation mem accounting" Revert "net: fix percpu memory leaks" gianfar: Fix Tx flow control deactivation vhost_net: correctly check tx avail during rx busy polling ip6_gre: update mtu properly in ip6gre_err ipv6: fix memory leak with multiple tables during netns destruction ipv6: fix typo in fib6_net_exit() sctp: fix missing wake ups in some situations ip_tunnel: fix setting ttl and tos value in collect_md mode f2fs: let fill_super handle roll-forward errors f2fs: check hot_data for roll-forward recovery x86/fsgsbase/64: Fully initialize FS and GS state in start_thread_common x86/fsgsbase/64: Report FSBASE and GSBASE correctly in core dumps x86/switch_to/64: Rewrite FS/GS switching yet again to fix AMD CPUs xfs: Move handling of missing page into one place in xfs_find_get_desired_pgoff() xfs: fix spurious spin_is_locked() assert failures on non-smp kernels xfs: push buffer of flush locked dquot to avoid quotacheck deadlock xfs: try to avoid blowing out the transaction reservation when bunmaping a shared extent xfs: release bli from transaction properly on fs shutdown xfs: remove bli from AIL before release on transaction abort xfs: don't allow bmap on rt files xfs: free uncommitted transactions during log recovery xfs: free cowblocks and retry on buffered write ENOSPC xfs: don't crash on unexpected holes in dir/attr btrees xfs: check _btree_check_block value xfs: set firstfsb to NULLFSBLOCK before feeding it to _bmapi_write xfs: check _alloc_read_agf buffer pointer before using xfs: fix quotacheck dquot id overflow infinite loop xfs: fix multi-AG deadlock in xfs_bunmapi xfs: Fix per-inode DAX flag inheritance xfs: fix inobt inode allocation search optimization xfs: clear MS_ACTIVE after finishing log recovery xfs: don't leak quotacheck dquots when cow recovery iomap: fix integer truncation issues in the zeroing and dirtying helpers xfs: write unmount record for ro mounts xfs: toggle readonly state around xfs_log_mount_finish xfs: remove xfs_trans_ail_delete_bulk xfs: Add infrastructure needed for error propagation during buffer IO failure xfs: Properly retry failed inode items in case of error during buffer writeback xfs: fix recovery failure when log record header wraps log end xfs: always verify the log tail during recovery xfs: fix log recovery corruption error due to tail overwrite xfs: handle -EFSCORRUPTED during head/tail verification xfs: add log recovery tracepoint for head/tail xfs: stop searching for free slots in an inode chunk when there are none xfs: evict all inodes involved with log redo item xfs: check for race with xfs_reclaim_inode() in xfs_ifree_cluster() xfs: open-code xfs_buf_item_dirty() xfs: remove unnecessary dirty bli format check for ordered bufs xfs: ordered buffer log items are never formatted xfs: refactor buffer logging into buffer dirtying helper xfs: don't log dirty ranges for ordered buffers xfs: skip bmbt block ino validation during owner change xfs: move bmbt owner change to last step of extent swap xfs: disallow marking previously dirty buffers as ordered xfs: relog dirty buffers during swapext bmbt owner change xfs: disable per-inode DAX flag xfs: fix incorrect log_flushed on fsync xfs: don't set v3 xflags for v2 inodes xfs: open code end_buffer_async_write in xfs_finish_page_writeback xfs: use kmem_free to free return value of kmem_zalloc md/raid5: release/flush io in raid5_do_work() xfs: fix compiler warnings ipv6: Fix may be used uninitialized warning in rt6_check Linux 4.9.51 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
188 lines
4.7 KiB
C
188 lines
4.7 KiB
C
/* fs/ internal definitions
|
|
*
|
|
* Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
|
|
* Written by David Howells (dhowells@redhat.com)
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the License, or (at your option) any later version.
|
|
*/
|
|
|
|
struct super_block;
|
|
struct file_system_type;
|
|
struct iomap;
|
|
struct iomap_ops;
|
|
struct linux_binprm;
|
|
struct path;
|
|
struct mount;
|
|
struct shrink_control;
|
|
|
|
/*
|
|
* block_dev.c
|
|
*/
|
|
#ifdef CONFIG_BLOCK
|
|
extern void __init bdev_cache_init(void);
|
|
|
|
extern int __sync_blockdev(struct block_device *bdev, int wait);
|
|
|
|
#else
|
|
static inline void bdev_cache_init(void)
|
|
{
|
|
}
|
|
|
|
static inline int __sync_blockdev(struct block_device *bdev, int wait)
|
|
{
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
/*
|
|
* buffer.c
|
|
*/
|
|
extern void guard_bio_eod(int rw, struct bio *bio);
|
|
extern int __block_write_begin_int(struct page *page, loff_t pos, unsigned len,
|
|
get_block_t *get_block, struct iomap *iomap);
|
|
|
|
/*
|
|
* char_dev.c
|
|
*/
|
|
extern void __init chrdev_init(void);
|
|
|
|
/*
|
|
* namei.c
|
|
*/
|
|
extern int user_path_mountpoint_at(int, const char __user *, unsigned int, struct path *);
|
|
extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
|
|
const char *, unsigned int, struct path *);
|
|
|
|
/*
|
|
* namespace.c
|
|
*/
|
|
extern void *copy_mount_options(const void __user *);
|
|
extern char *copy_mount_string(const void __user *);
|
|
|
|
extern struct vfsmount *lookup_mnt(struct path *);
|
|
extern int finish_automount(struct vfsmount *, struct path *);
|
|
|
|
extern int sb_prepare_remount_readonly(struct super_block *);
|
|
|
|
extern void __init mnt_init(void);
|
|
|
|
extern int __mnt_want_write(struct vfsmount *);
|
|
extern int __mnt_want_write_file(struct file *);
|
|
extern void __mnt_drop_write(struct vfsmount *);
|
|
extern void __mnt_drop_write_file(struct file *);
|
|
|
|
/*
|
|
* fs_struct.c
|
|
*/
|
|
extern void chroot_fs_refs(const struct path *, const struct path *);
|
|
|
|
/*
|
|
* file_table.c
|
|
*/
|
|
extern struct file *get_empty_filp(void);
|
|
|
|
/*
|
|
* super.c
|
|
*/
|
|
extern int do_remount_sb(struct super_block *, int, void *, int);
|
|
extern int do_remount_sb2(struct vfsmount *, struct super_block *, int,
|
|
void *, int);
|
|
extern bool trylock_super(struct super_block *sb);
|
|
extern struct dentry *mount_fs(struct file_system_type *,
|
|
int, const char *, struct vfsmount *, void *);
|
|
extern struct super_block *user_get_super(dev_t);
|
|
|
|
/*
|
|
* open.c
|
|
*/
|
|
struct open_flags {
|
|
int open_flag;
|
|
umode_t mode;
|
|
int acc_mode;
|
|
int intent;
|
|
int lookup_flags;
|
|
};
|
|
extern struct file *do_filp_open(int dfd, struct filename *pathname,
|
|
const struct open_flags *op);
|
|
extern struct file *do_file_open_root(struct dentry *, struct vfsmount *,
|
|
const char *, const struct open_flags *);
|
|
|
|
extern long do_handle_open(int mountdirfd,
|
|
struct file_handle __user *ufh, int open_flag);
|
|
extern int open_check_o_direct(struct file *f);
|
|
extern int vfs_open(const struct path *, struct file *, const struct cred *);
|
|
extern struct file *filp_clone_open(struct file *);
|
|
|
|
/*
|
|
* inode.c
|
|
*/
|
|
extern long prune_icache_sb(struct super_block *sb, struct shrink_control *sc);
|
|
extern void inode_add_lru(struct inode *inode);
|
|
extern int dentry_needs_remove_privs(struct dentry *dentry);
|
|
|
|
extern bool __atime_needs_update(const struct path *, struct inode *, bool);
|
|
static inline bool atime_needs_update_rcu(const struct path *path,
|
|
struct inode *inode)
|
|
{
|
|
return __atime_needs_update(path, inode, true);
|
|
}
|
|
|
|
extern bool atime_needs_update_rcu(const struct path *, struct inode *);
|
|
|
|
/*
|
|
* fs-writeback.c
|
|
*/
|
|
extern void inode_io_list_del(struct inode *inode);
|
|
|
|
extern long get_nr_dirty_inodes(void);
|
|
extern int invalidate_inodes(struct super_block *, bool);
|
|
|
|
/*
|
|
* dcache.c
|
|
*/
|
|
extern struct dentry *__d_alloc(struct super_block *, const struct qstr *);
|
|
extern int d_set_mounted(struct dentry *dentry);
|
|
extern long prune_dcache_sb(struct super_block *sb, struct shrink_control *sc);
|
|
extern struct dentry *d_alloc_cursor(struct dentry *);
|
|
|
|
/*
|
|
* read_write.c
|
|
*/
|
|
extern int rw_verify_area(int, struct file *, const loff_t *, size_t);
|
|
|
|
/*
|
|
* pipe.c
|
|
*/
|
|
extern const struct file_operations pipefifo_fops;
|
|
|
|
/*
|
|
* fs_pin.c
|
|
*/
|
|
extern void group_pin_kill(struct hlist_head *p);
|
|
extern void mnt_pin_kill(struct mount *m);
|
|
|
|
/*
|
|
* fs/nsfs.c
|
|
*/
|
|
extern const struct dentry_operations ns_dentry_operations;
|
|
|
|
/*
|
|
* fs/ioctl.c
|
|
*/
|
|
extern int do_vfs_ioctl(struct file *file, unsigned int fd, unsigned int cmd,
|
|
unsigned long arg);
|
|
extern long vfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
|
|
|
|
/*
|
|
* iomap support:
|
|
*/
|
|
typedef loff_t (*iomap_actor_t)(struct inode *inode, loff_t pos, loff_t len,
|
|
void *data, struct iomap *iomap);
|
|
|
|
loff_t iomap_apply(struct inode *inode, loff_t pos, loff_t length,
|
|
unsigned flags, struct iomap_ops *ops, void *data,
|
|
iomap_actor_t actor);
|