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:
@@ -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_ */
|
||||
|
Reference in New Issue
Block a user