Merge tag 'v3.10.67' into update
This is the 3.10.67 stable release
This commit is contained in:
@@ -25,6 +25,19 @@
|
||||
#include <linux/string.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
||||
/*
|
||||
* Autoloaded crypto modules should only use a prefixed name to avoid allowing
|
||||
* arbitrary modules to be loaded. Loading from userspace may still need the
|
||||
* unprefixed names, so retains those aliases as well.
|
||||
* This uses __MODULE_INFO directly instead of MODULE_ALIAS because pre-4.3
|
||||
* gcc (e.g. avr32 toolchain) uses __LINE__ for uniqueness, and this macro
|
||||
* expands twice on the same line. Instead, use a separate base name for the
|
||||
* alias.
|
||||
*/
|
||||
#define MODULE_ALIAS_CRYPTO(name) \
|
||||
__MODULE_INFO(alias, alias_userspace, name); \
|
||||
__MODULE_INFO(alias, alias_crypto, "crypto-" name)
|
||||
|
||||
/*
|
||||
* Algorithm masks and types.
|
||||
*/
|
||||
|
||||
@@ -2509,6 +2509,7 @@ extern void generic_fillattr(struct inode *, struct kstat *);
|
||||
extern int vfs_getattr(struct path *, struct kstat *);
|
||||
void __inode_add_bytes(struct inode *inode, loff_t bytes);
|
||||
void inode_add_bytes(struct inode *inode, loff_t bytes);
|
||||
void __inode_sub_bytes(struct inode *inode, loff_t bytes);
|
||||
void inode_sub_bytes(struct inode *inode, loff_t bytes);
|
||||
loff_t inode_get_bytes(struct inode *inode);
|
||||
void inode_set_bytes(struct inode *inode, loff_t bytes);
|
||||
|
||||
@@ -41,6 +41,7 @@ void __quota_error(struct super_block *sb, const char *func,
|
||||
void inode_add_rsv_space(struct inode *inode, qsize_t number);
|
||||
void inode_claim_rsv_space(struct inode *inode, qsize_t number);
|
||||
void inode_sub_rsv_space(struct inode *inode, qsize_t number);
|
||||
void inode_reclaim_rsv_space(struct inode *inode, qsize_t number);
|
||||
|
||||
void dquot_initialize(struct inode *inode);
|
||||
void dquot_drop(struct inode *inode);
|
||||
@@ -59,6 +60,7 @@ int dquot_alloc_inode(const struct inode *inode);
|
||||
|
||||
int dquot_claim_space_nodirty(struct inode *inode, qsize_t number);
|
||||
void dquot_free_inode(const struct inode *inode);
|
||||
void dquot_reclaim_space_nodirty(struct inode *inode, qsize_t number);
|
||||
|
||||
int dquot_disable(struct super_block *sb, int type, unsigned int flags);
|
||||
/* Suspend quotas on remount RO */
|
||||
@@ -238,6 +240,13 @@ static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int dquot_reclaim_space_nodirty(struct inode *inode,
|
||||
qsize_t number)
|
||||
{
|
||||
inode_sub_bytes(inode, number);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int dquot_disable(struct super_block *sb, int type,
|
||||
unsigned int flags)
|
||||
{
|
||||
@@ -336,6 +345,12 @@ static inline int dquot_claim_block(struct inode *inode, qsize_t nr)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline void dquot_reclaim_block(struct inode *inode, qsize_t nr)
|
||||
{
|
||||
dquot_reclaim_space_nodirty(inode, nr << inode->i_blkbits);
|
||||
mark_inode_dirty_sync(inode);
|
||||
}
|
||||
|
||||
static inline void dquot_free_space_nodirty(struct inode *inode, qsize_t nr)
|
||||
{
|
||||
__dquot_free_space(inode, nr, 0);
|
||||
|
||||
@@ -173,6 +173,19 @@ extern void getboottime(struct timespec *ts);
|
||||
extern void monotonic_to_bootbased(struct timespec *ts);
|
||||
extern void get_monotonic_boottime(struct timespec *ts);
|
||||
|
||||
static inline bool timeval_valid(const struct timeval *tv)
|
||||
{
|
||||
/* Dates before 1970 are bogus */
|
||||
if (tv->tv_sec < 0)
|
||||
return false;
|
||||
|
||||
/* Can't have more microseconds then a second */
|
||||
if (tv->tv_usec < 0 || tv->tv_usec >= USEC_PER_SEC)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
|
||||
extern int timekeeping_valid_for_hres(void);
|
||||
extern u64 timekeeping_max_deferment(void);
|
||||
|
||||
Reference in New Issue
Block a user