Commit 8cea4eb6 authored by Linus Torvalds's avatar Linus Torvalds

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
parents 122ce878 720e7749
...@@ -8,7 +8,6 @@ config GFS2_FS ...@@ -8,7 +8,6 @@ config GFS2_FS
select FS_POSIX_ACL select FS_POSIX_ACL
select CRC32 select CRC32
select SLOW_WORK select SLOW_WORK
select QUOTA
select QUOTACTL select QUOTACTL
help help
A cluster filesystem. A cluster filesystem.
......
...@@ -640,7 +640,7 @@ static int gfs2_lock(struct file *file, int cmd, struct file_lock *fl) ...@@ -640,7 +640,7 @@ static int gfs2_lock(struct file *file, int cmd, struct file_lock *fl)
if (!(fl->fl_flags & FL_POSIX)) if (!(fl->fl_flags & FL_POSIX))
return -ENOLCK; return -ENOLCK;
if (__mandatory_lock(&ip->i_inode)) if (__mandatory_lock(&ip->i_inode) && fl->fl_type != F_UNLCK)
return -ENOLCK; return -ENOLCK;
if (cmd == F_CANCELLK) { if (cmd == F_CANCELLK) {
......
...@@ -616,7 +616,7 @@ struct gfs2_sbd { ...@@ -616,7 +616,7 @@ struct gfs2_sbd {
unsigned int sd_log_blks_reserved; unsigned int sd_log_blks_reserved;
unsigned int sd_log_commited_buf; unsigned int sd_log_commited_buf;
unsigned int sd_log_commited_databuf; 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_buf;
unsigned int sd_log_num_revoke; unsigned int sd_log_num_revoke;
......
...@@ -417,7 +417,7 @@ static unsigned int calc_reserved(struct gfs2_sbd *sdp) ...@@ -417,7 +417,7 @@ static unsigned int calc_reserved(struct gfs2_sbd *sdp)
databufhdrs_needed = (sdp->sd_log_commited_databuf + databufhdrs_needed = (sdp->sd_log_commited_databuf +
(dbuf_limit - 1)) / dbuf_limit; (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, revokes = gfs2_struct2blk(sdp, sdp->sd_log_commited_revoke,
sizeof(u64)); sizeof(u64));
...@@ -790,7 +790,6 @@ static void log_refund(struct gfs2_sbd *sdp, struct gfs2_trans *tr) ...@@ -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) || gfs2_assert_withdraw(sdp, (((int)sdp->sd_log_commited_buf) >= 0) ||
(((int)sdp->sd_log_commited_databuf) >= 0)); (((int)sdp->sd_log_commited_databuf) >= 0));
sdp->sd_log_commited_revoke += tr->tr_num_revoke - tr->tr_num_revoke_rm; 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); reserved = calc_reserved(sdp);
gfs2_assert_withdraw(sdp, sdp->sd_log_blks_reserved + tr->tr_reserved >= reserved); gfs2_assert_withdraw(sdp, sdp->sd_log_blks_reserved + tr->tr_reserved >= reserved);
unused = sdp->sd_log_blks_reserved - reserved + tr->tr_reserved; unused = sdp->sd_log_blks_reserved - reserved + tr->tr_reserved;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment