mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 21:51:05 +00:00
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits) ext4: Make fsync sync new parent directories in no-journal mode ext4: Drop whitespace at end of lines ext4: Fix compat EXT4_IOC_ADD_GROUP ext4: Conditionally define compat ioctl numbers tracing: Convert more ext4 events to DEFINE_EVENT ext4: Add new tracepoints to track mballoc's buddy bitmap loads ext4: Add a missing trace hook ext4: restart ext4_ext_remove_space() after transaction restart ext4: Clear the EXT4_EOFBLOCKS_FL flag only when warranted ext4: Avoid crashing on NULL ptr dereference on a filesystem error ext4: Use bitops to read/modify i_flags in struct ext4_inode_info ext4: Convert calls of ext4_error() to EXT4_ERROR_INODE() ext4: Convert callers of ext4_get_blocks() to use ext4_map_blocks() ext4: Add new abstraction ext4_map_blocks() underneath ext4_get_blocks() ext4: Use our own write_cache_pages() ext4: Show journal_checksum option ext4: Fix for ext4_mb_collect_stats() ext4: check for a good block group before loading buddy pages ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate ext4: Remove extraneous newlines in ext4_msg() calls ... Fixed up trivial conflict in fs/ext4/fsync.c
This commit is contained in:
commit
e4ce30f377
23 changed files with 1139 additions and 837 deletions
|
@ -9,6 +9,10 @@
|
|||
|
||||
#include <linux/fs.h>
|
||||
|
||||
#define DQUOT_SPACE_WARN 0x1
|
||||
#define DQUOT_SPACE_RESERVE 0x2
|
||||
#define DQUOT_SPACE_NOFAIL 0x4
|
||||
|
||||
static inline struct quota_info *sb_dqopt(struct super_block *sb)
|
||||
{
|
||||
return &sb->s_dquot;
|
||||
|
@ -41,9 +45,8 @@ int dquot_scan_active(struct super_block *sb,
|
|||
struct dquot *dquot_alloc(struct super_block *sb, int type);
|
||||
void dquot_destroy(struct dquot *dquot);
|
||||
|
||||
int __dquot_alloc_space(struct inode *inode, qsize_t number,
|
||||
int warn, int reserve);
|
||||
void __dquot_free_space(struct inode *inode, qsize_t number, int reserve);
|
||||
int __dquot_alloc_space(struct inode *inode, qsize_t number, int flags);
|
||||
void __dquot_free_space(struct inode *inode, qsize_t number, int flags);
|
||||
|
||||
int dquot_alloc_inode(const struct inode *inode);
|
||||
|
||||
|
@ -242,17 +245,17 @@ static inline int dquot_transfer(struct inode *inode, struct iattr *iattr)
|
|||
}
|
||||
|
||||
static inline int __dquot_alloc_space(struct inode *inode, qsize_t number,
|
||||
int warn, int reserve)
|
||||
int flags)
|
||||
{
|
||||
if (!reserve)
|
||||
if (!(flags & DQUOT_SPACE_RESERVE))
|
||||
inode_add_bytes(inode, number);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void __dquot_free_space(struct inode *inode, qsize_t number,
|
||||
int reserve)
|
||||
int flags)
|
||||
{
|
||||
if (!reserve)
|
||||
if (!(flags & DQUOT_SPACE_RESERVE))
|
||||
inode_sub_bytes(inode, number);
|
||||
}
|
||||
|
||||
|
@ -268,7 +271,13 @@ static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number)
|
|||
|
||||
static inline int dquot_alloc_space_nodirty(struct inode *inode, qsize_t nr)
|
||||
{
|
||||
return __dquot_alloc_space(inode, nr, 1, 0);
|
||||
return __dquot_alloc_space(inode, nr, DQUOT_SPACE_WARN);
|
||||
}
|
||||
|
||||
static inline void dquot_alloc_space_nofail(struct inode *inode, qsize_t nr)
|
||||
{
|
||||
__dquot_alloc_space(inode, nr, DQUOT_SPACE_WARN|DQUOT_SPACE_NOFAIL);
|
||||
mark_inode_dirty(inode);
|
||||
}
|
||||
|
||||
static inline int dquot_alloc_space(struct inode *inode, qsize_t nr)
|
||||
|
@ -286,6 +295,11 @@ static inline int dquot_alloc_block_nodirty(struct inode *inode, qsize_t nr)
|
|||
return dquot_alloc_space_nodirty(inode, nr << inode->i_blkbits);
|
||||
}
|
||||
|
||||
static inline void dquot_alloc_block_nofail(struct inode *inode, qsize_t nr)
|
||||
{
|
||||
dquot_alloc_space_nofail(inode, nr << inode->i_blkbits);
|
||||
}
|
||||
|
||||
static inline int dquot_alloc_block(struct inode *inode, qsize_t nr)
|
||||
{
|
||||
return dquot_alloc_space(inode, nr << inode->i_blkbits);
|
||||
|
@ -293,7 +307,7 @@ static inline int dquot_alloc_block(struct inode *inode, qsize_t nr)
|
|||
|
||||
static inline int dquot_prealloc_block_nodirty(struct inode *inode, qsize_t nr)
|
||||
{
|
||||
return __dquot_alloc_space(inode, nr << inode->i_blkbits, 0, 0);
|
||||
return __dquot_alloc_space(inode, nr << inode->i_blkbits, 0);
|
||||
}
|
||||
|
||||
static inline int dquot_prealloc_block(struct inode *inode, qsize_t nr)
|
||||
|
@ -308,7 +322,8 @@ static inline int dquot_prealloc_block(struct inode *inode, qsize_t nr)
|
|||
|
||||
static inline int dquot_reserve_block(struct inode *inode, qsize_t nr)
|
||||
{
|
||||
return __dquot_alloc_space(inode, nr << inode->i_blkbits, 1, 1);
|
||||
return __dquot_alloc_space(inode, nr << inode->i_blkbits,
|
||||
DQUOT_SPACE_WARN|DQUOT_SPACE_RESERVE);
|
||||
}
|
||||
|
||||
static inline int dquot_claim_block(struct inode *inode, qsize_t nr)
|
||||
|
@ -345,7 +360,7 @@ static inline void dquot_free_block(struct inode *inode, qsize_t nr)
|
|||
static inline void dquot_release_reservation_block(struct inode *inode,
|
||||
qsize_t nr)
|
||||
{
|
||||
__dquot_free_space(inode, nr << inode->i_blkbits, 1);
|
||||
__dquot_free_space(inode, nr << inode->i_blkbits, DQUOT_SPACE_RESERVE);
|
||||
}
|
||||
|
||||
#endif /* _LINUX_QUOTAOPS_ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue