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] Update git tree name/location [DLM] fix iovec length in recvmsg [GFS2] Pass the correct value to kunmap_atomic [GFS2] Fix bug where lock not held [DLM] Kconfig: don't show an empty DLM menu [GFS2] Fix uninitialised variable [GFS2] Fix a size calculation error
This commit is contained in:
commit
a5344a9555
@ -905,7 +905,8 @@ P: David Teigland
|
||||
M: teigland@redhat.com
|
||||
L: cluster-devel@redhat.com
|
||||
W: http://sources.redhat.com/cluster/
|
||||
T: git kernel.org:/pub/scm/linux/kernel/git/steve/gfs-2.6.git
|
||||
T: git kernel.org:/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git
|
||||
T: git kernel.org:/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw.git
|
||||
S: Supported
|
||||
|
||||
DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER
|
||||
@ -1188,7 +1189,8 @@ P: Steven Whitehouse
|
||||
M: swhiteho@redhat.com
|
||||
L: cluster-devel@redhat.com
|
||||
W: http://sources.redhat.com/cluster/
|
||||
T: git kernel.org:/pub/scm/linux/kernel/git/steve/gfs-2.6.git
|
||||
T: git kernel.org:/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git
|
||||
T: git kernel.org:/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw.git
|
||||
S: Supported
|
||||
|
||||
GIGASET ISDN DRIVERS
|
||||
|
@ -1,10 +1,9 @@
|
||||
menu "Distributed Lock Manager"
|
||||
depends on INET && EXPERIMENTAL
|
||||
depends on INET && IP_SCTP && EXPERIMENTAL
|
||||
|
||||
config DLM
|
||||
tristate "Distributed Lock Manager (DLM)"
|
||||
depends on IPV6 || IPV6=n
|
||||
depends on IP_SCTP
|
||||
select CONFIGFS_FS
|
||||
help
|
||||
A general purpose distributed lock manager for kernel or userspace
|
||||
|
@ -548,7 +548,7 @@ static int receive_from_sock(void)
|
||||
}
|
||||
len = iov[0].iov_len + iov[1].iov_len;
|
||||
|
||||
r = ret = kernel_recvmsg(sctp_con.sock, &msg, iov, 1, len,
|
||||
r = ret = kernel_recvmsg(sctp_con.sock, &msg, iov, msg.msg_iovlen, len,
|
||||
MSG_NOSIGNAL | MSG_DONTWAIT);
|
||||
if (ret <= 0)
|
||||
goto out_close;
|
||||
|
@ -569,16 +569,15 @@ void gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl)
|
||||
else if (sdp->sd_log_tail != current_tail(sdp) && !sdp->sd_log_idle)
|
||||
log_write_header(sdp, 0, PULL);
|
||||
lops_after_commit(sdp, ai);
|
||||
|
||||
gfs2_log_lock(sdp);
|
||||
sdp->sd_log_head = sdp->sd_log_flush_head;
|
||||
|
||||
sdp->sd_log_blks_free -= sdp->sd_log_num_hdrs;
|
||||
|
||||
sdp->sd_log_blks_reserved = 0;
|
||||
sdp->sd_log_commited_buf = 0;
|
||||
sdp->sd_log_num_hdrs = 0;
|
||||
sdp->sd_log_commited_revoke = 0;
|
||||
|
||||
gfs2_log_lock(sdp);
|
||||
if (!list_empty(&ai->ai_ail1_list)) {
|
||||
list_add(&ai->ai_list, &sdp->sd_ail1_list);
|
||||
ai = NULL;
|
||||
|
@ -492,7 +492,7 @@ static int gfs2_check_magic(struct buffer_head *bh)
|
||||
ptr = kaddr + bh_offset(bh);
|
||||
if (*ptr == cpu_to_be32(GFS2_MAGIC))
|
||||
rv = 1;
|
||||
kunmap_atomic(page, KM_USER0);
|
||||
kunmap_atomic(kaddr, KM_USER0);
|
||||
|
||||
return rv;
|
||||
}
|
||||
@ -626,7 +626,7 @@ static void databuf_lo_before_commit(struct gfs2_sbd *sdp)
|
||||
memcpy(bh->b_data,
|
||||
kaddr + bh_offset(bd2->bd_bh),
|
||||
sdp->sd_sb.sb_bsize);
|
||||
kunmap_atomic(page, KM_USER0);
|
||||
kunmap_atomic(kaddr, KM_USER0);
|
||||
*(__be32 *)bh->b_data = 0;
|
||||
} else {
|
||||
bh = gfs2_log_fake_buf(sdp, bd2->bd_bh);
|
||||
|
@ -162,7 +162,7 @@ static int zero_readpage(struct page *page)
|
||||
|
||||
kaddr = kmap_atomic(page, KM_USER0);
|
||||
memset(kaddr, 0, PAGE_CACHE_SIZE);
|
||||
kunmap_atomic(page, KM_USER0);
|
||||
kunmap_atomic(kaddr, KM_USER0);
|
||||
|
||||
SetPageUptodate(page);
|
||||
|
||||
@ -195,7 +195,7 @@ static int stuffed_readpage(struct gfs2_inode *ip, struct page *page)
|
||||
memcpy(kaddr, dibh->b_data + sizeof(struct gfs2_dinode),
|
||||
ip->i_di.di_size);
|
||||
memset(kaddr + ip->i_di.di_size, 0, PAGE_CACHE_SIZE - ip->i_di.di_size);
|
||||
kunmap_atomic(page, KM_USER0);
|
||||
kunmap_atomic(kaddr, KM_USER0);
|
||||
|
||||
brelse(dibh);
|
||||
|
||||
@ -370,19 +370,22 @@ static int gfs2_prepare_write(struct file *file, struct page *page,
|
||||
loff_t pos = ((loff_t)page->index << PAGE_CACHE_SHIFT) + from;
|
||||
loff_t end = ((loff_t)page->index << PAGE_CACHE_SHIFT) + to;
|
||||
struct gfs2_alloc *al;
|
||||
unsigned int write_len = to - from;
|
||||
|
||||
|
||||
gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, GL_ATIME|GL_AOP, &ip->i_gh);
|
||||
error = gfs2_glock_nq_m_atime(1, &ip->i_gh);
|
||||
if (error)
|
||||
goto out_uninit;
|
||||
|
||||
gfs2_write_calc_reserv(ip, to - from, &data_blocks, &ind_blocks);
|
||||
gfs2_write_calc_reserv(ip, write_len, &data_blocks, &ind_blocks);
|
||||
|
||||
error = gfs2_write_alloc_required(ip, pos, from - to, &alloc_required);
|
||||
error = gfs2_write_alloc_required(ip, pos, write_len, &alloc_required);
|
||||
if (error)
|
||||
goto out_unlock;
|
||||
|
||||
|
||||
ip->i_alloc.al_requested = 0;
|
||||
if (alloc_required) {
|
||||
al = gfs2_alloc_get(ip);
|
||||
|
||||
@ -482,7 +485,7 @@ static int gfs2_commit_write(struct file *file, struct page *page,
|
||||
kaddr = kmap_atomic(page, KM_USER0);
|
||||
memcpy(dibh->b_data + sizeof(struct gfs2_dinode) + from,
|
||||
kaddr + from, to - from);
|
||||
kunmap_atomic(page, KM_USER0);
|
||||
kunmap_atomic(kaddr, KM_USER0);
|
||||
|
||||
SetPageUptodate(page);
|
||||
|
||||
|
@ -32,7 +32,7 @@ void gfs2_rgrp_repolish_clones(struct gfs2_rgrpd *rgd);
|
||||
struct gfs2_alloc *gfs2_alloc_get(struct gfs2_inode *ip);
|
||||
static inline void gfs2_alloc_put(struct gfs2_inode *ip)
|
||||
{
|
||||
return; /* Se we can see where ip->i_alloc is used */
|
||||
return; /* So we can see where ip->i_alloc is used */
|
||||
}
|
||||
|
||||
int gfs2_inplace_reserve_i(struct gfs2_inode *ip,
|
||||
|
Loading…
Reference in New Issue
Block a user