forked from Minki/linux
Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes
* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes: GFS2: Skip check for mandatory locks when unlocking GFS2: Allow the number of committed revokes to temporarily be negative GFS2: do not select QUOTA
This commit is contained in:
commit
8cea4eb642
@ -8,7 +8,6 @@ config GFS2_FS
|
||||
select FS_POSIX_ACL
|
||||
select CRC32
|
||||
select SLOW_WORK
|
||||
select QUOTA
|
||||
select QUOTACTL
|
||||
help
|
||||
A cluster filesystem.
|
||||
|
@ -640,7 +640,7 @@ static int gfs2_lock(struct file *file, int cmd, struct file_lock *fl)
|
||||
|
||||
if (!(fl->fl_flags & FL_POSIX))
|
||||
return -ENOLCK;
|
||||
if (__mandatory_lock(&ip->i_inode))
|
||||
if (__mandatory_lock(&ip->i_inode) && fl->fl_type != F_UNLCK)
|
||||
return -ENOLCK;
|
||||
|
||||
if (cmd == F_CANCELLK) {
|
||||
|
@ -616,7 +616,7 @@ struct gfs2_sbd {
|
||||
unsigned int sd_log_blks_reserved;
|
||||
unsigned int sd_log_commited_buf;
|
||||
unsigned int sd_log_commited_databuf;
|
||||
unsigned int sd_log_commited_revoke;
|
||||
int sd_log_commited_revoke;
|
||||
|
||||
unsigned int sd_log_num_buf;
|
||||
unsigned int sd_log_num_revoke;
|
||||
|
@ -417,7 +417,7 @@ static unsigned int calc_reserved(struct gfs2_sbd *sdp)
|
||||
databufhdrs_needed = (sdp->sd_log_commited_databuf +
|
||||
(dbuf_limit - 1)) / dbuf_limit;
|
||||
|
||||
if (sdp->sd_log_commited_revoke)
|
||||
if (sdp->sd_log_commited_revoke > 0)
|
||||
revokes = gfs2_struct2blk(sdp, sdp->sd_log_commited_revoke,
|
||||
sizeof(u64));
|
||||
|
||||
@ -790,7 +790,6 @@ static void log_refund(struct gfs2_sbd *sdp, struct gfs2_trans *tr)
|
||||
gfs2_assert_withdraw(sdp, (((int)sdp->sd_log_commited_buf) >= 0) ||
|
||||
(((int)sdp->sd_log_commited_databuf) >= 0));
|
||||
sdp->sd_log_commited_revoke += tr->tr_num_revoke - tr->tr_num_revoke_rm;
|
||||
gfs2_assert_withdraw(sdp, ((int)sdp->sd_log_commited_revoke) >= 0);
|
||||
reserved = calc_reserved(sdp);
|
||||
gfs2_assert_withdraw(sdp, sdp->sd_log_blks_reserved + tr->tr_reserved >= reserved);
|
||||
unused = sdp->sd_log_blks_reserved - reserved + tr->tr_reserved;
|
||||
|
Loading…
Reference in New Issue
Block a user