* GFS2: Pre-pull patch posting (fixes)
@ 2012-11-07 10:15 Steven Whitehouse
2012-11-07 10:15 ` [PATCH 1/7] GFS2: Fix an unchecked error from gfs2_rs_alloc Steven Whitehouse
` (6 more replies)
0 siblings, 7 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-11-07 10:15 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are a number of GFS2 bug fixes. There are three from Andy Price
which fix various issues spotted by automated code analysis. There are two
from Lukas Czerner fixing my mistaken assumptions as to how FITRIM
should work. Finally Ben Marzinski has fixed a bug relating to mmap and
atime and also a bug relating to a locking issue in the transaction code.
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH 1/7] GFS2: Fix an unchecked error from gfs2_rs_alloc
2012-11-07 10:15 GFS2: Pre-pull patch posting (fixes) Steven Whitehouse
@ 2012-11-07 10:15 ` Steven Whitehouse
2012-11-07 10:15 ` [PATCH 2/7] GFS2: Fix possible null pointer deref in gfs2_rs_alloc Steven Whitehouse
` (5 subsequent siblings)
6 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-11-07 10:15 UTC (permalink / raw)
To: linux-kernel, cluster-devel; +Cc: Andrew Price, Steven Whitehouse
From: Andrew Price <anprice@redhat.com>
Check the return value of gfs2_rs_alloc(ip) and avoid a possible null
pointer dereference.
Signed-off-by: Andrew Price <anprice@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
index 40c4b0d..c5af8e1 100644
--- a/fs/gfs2/quota.c
+++ b/fs/gfs2/quota.c
@@ -497,8 +497,11 @@ int gfs2_quota_hold(struct gfs2_inode *ip, u32 uid, u32 gid)
struct gfs2_quota_data **qd;
int error;
- if (ip->i_res == NULL)
- gfs2_rs_alloc(ip);
+ if (ip->i_res == NULL) {
+ error = gfs2_rs_alloc(ip);
+ if (error)
+ return error;
+ }
qd = ip->i_res->rs_qa_qd;
--
1.7.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 2/7] GFS2: Fix possible null pointer deref in gfs2_rs_alloc
2012-11-07 10:15 GFS2: Pre-pull patch posting (fixes) Steven Whitehouse
2012-11-07 10:15 ` [PATCH 1/7] GFS2: Fix an unchecked error from gfs2_rs_alloc Steven Whitehouse
@ 2012-11-07 10:15 ` Steven Whitehouse
2012-11-07 10:15 ` [PATCH 3/7] GFS2: Clean up some unused assignments Steven Whitehouse
` (4 subsequent siblings)
6 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-11-07 10:15 UTC (permalink / raw)
To: linux-kernel, cluster-devel; +Cc: Andrew Price, Steven Whitehouse
From: Andrew Price <anprice@redhat.com>
Despite the return value from kmem_cache_zalloc() being checked, the
error wasn't being returned until after a possible null pointer
dereference. This patch returns the error immediately, allowing the
removal of the error variable.
Signed-off-by: Andrew Price <anprice@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 3cc402c..43d1a20 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -553,7 +553,6 @@ void gfs2_free_clones(struct gfs2_rgrpd *rgd)
*/
int gfs2_rs_alloc(struct gfs2_inode *ip)
{
- int error = 0;
struct gfs2_blkreserv *res;
if (ip->i_res)
@@ -561,7 +560,7 @@ int gfs2_rs_alloc(struct gfs2_inode *ip)
res = kmem_cache_zalloc(gfs2_rsrv_cachep, GFP_NOFS);
if (!res)
- error = -ENOMEM;
+ return -ENOMEM;
RB_CLEAR_NODE(&res->rs_node);
@@ -571,7 +570,7 @@ int gfs2_rs_alloc(struct gfs2_inode *ip)
else
ip->i_res = res;
up_write(&ip->i_rw_mutex);
- return error;
+ return 0;
}
static void dump_rs(struct seq_file *seq, const struct gfs2_blkreserv *rs)
--
1.7.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 3/7] GFS2: Clean up some unused assignments
2012-11-07 10:15 GFS2: Pre-pull patch posting (fixes) Steven Whitehouse
2012-11-07 10:15 ` [PATCH 1/7] GFS2: Fix an unchecked error from gfs2_rs_alloc Steven Whitehouse
2012-11-07 10:15 ` [PATCH 2/7] GFS2: Fix possible null pointer deref in gfs2_rs_alloc Steven Whitehouse
@ 2012-11-07 10:15 ` Steven Whitehouse
2012-11-07 10:15 ` [PATCH 4/7] GFS2: Require user to provide argument for FITRIM Steven Whitehouse
` (3 subsequent siblings)
6 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-11-07 10:15 UTC (permalink / raw)
To: linux-kernel, cluster-devel; +Cc: Andrew Price, Steven Whitehouse
From: Andrew Price <anprice@redhat.com>
Cleans up two cases where variables were assigned values but then never
used again.
Signed-off-by: Andrew Price <anprice@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index 0def050..377a68d 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -677,10 +677,8 @@ static ssize_t gfs2_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
size_t writesize = iov_length(iov, nr_segs);
struct dentry *dentry = file->f_dentry;
struct gfs2_inode *ip = GFS2_I(dentry->d_inode);
- struct gfs2_sbd *sdp;
int ret;
- sdp = GFS2_SB(file->f_mapping->host);
ret = gfs2_rs_alloc(ip);
if (ret)
return ret;
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index 8ff95a2..01e444b 100644
--- a/fs/gfs2/lops.c
+++ b/fs/gfs2/lops.c
@@ -621,7 +621,6 @@ static void revoke_lo_add(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd)
static void revoke_lo_before_commit(struct gfs2_sbd *sdp)
{
- struct gfs2_log_descriptor *ld;
struct gfs2_meta_header *mh;
unsigned int offset;
struct list_head *head = &sdp->sd_log_le_revoke;
@@ -634,7 +633,6 @@ static void revoke_lo_before_commit(struct gfs2_sbd *sdp)
length = gfs2_struct2blk(sdp, sdp->sd_log_num_revoke, sizeof(u64));
page = gfs2_get_log_desc(sdp, GFS2_LOG_DESC_REVOKE, length, sdp->sd_log_num_revoke);
- ld = page_address(page);
offset = sizeof(struct gfs2_log_descriptor);
list_for_each_entry(bd, head, bd_list) {
--
1.7.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 4/7] GFS2: Require user to provide argument for FITRIM
2012-11-07 10:15 GFS2: Pre-pull patch posting (fixes) Steven Whitehouse
` (2 preceding siblings ...)
2012-11-07 10:15 ` [PATCH 3/7] GFS2: Clean up some unused assignments Steven Whitehouse
@ 2012-11-07 10:15 ` Steven Whitehouse
2012-11-07 10:15 ` [PATCH 5/7] GFS2: Fix FITRIM argument handling Steven Whitehouse
` (2 subsequent siblings)
6 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-11-07 10:15 UTC (permalink / raw)
To: linux-kernel, cluster-devel; +Cc: Lukas Czerner, Steven Whitehouse
From: Lukas Czerner <lczerner@redhat.com>
When the fstrim_range argument is not provided by user in FITRIM ioctl
we should just return EFAULT and not promoting bad behaviour by filling
the structure in kernel. Let the user deal with it.
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 43d1a20..b6bbf71 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -1270,11 +1270,7 @@ int gfs2_fitrim(struct file *filp, void __user *argp)
if (!blk_queue_discard(q))
return -EOPNOTSUPP;
- if (argp == NULL) {
- r.start = 0;
- r.len = ULLONG_MAX;
- r.minlen = 0;
- } else if (copy_from_user(&r, argp, sizeof(r)))
+ if (copy_from_user(&r, argp, sizeof(r)))
return -EFAULT;
ret = gfs2_rindex_update(sdp);
@@ -1323,7 +1319,7 @@ int gfs2_fitrim(struct file *filp, void __user *argp)
out:
r.len = trimmed << 9;
- if (argp && copy_to_user(argp, &r, sizeof(r)))
+ if (copy_to_user(argp, &r, sizeof(r)))
return -EFAULT;
return ret;
--
1.7.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 5/7] GFS2: Fix FITRIM argument handling
2012-11-07 10:15 GFS2: Pre-pull patch posting (fixes) Steven Whitehouse
` (3 preceding siblings ...)
2012-11-07 10:15 ` [PATCH 4/7] GFS2: Require user to provide argument for FITRIM Steven Whitehouse
@ 2012-11-07 10:15 ` Steven Whitehouse
2012-11-07 10:15 ` [PATCH 6/7] GFS2: Don't call file_accessed() with a shared glock Steven Whitehouse
2012-11-07 10:15 ` [PATCH 7/7] GFS2: Test bufdata with buffer locked and gfs2_log_lock held Steven Whitehouse
6 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-11-07 10:15 UTC (permalink / raw)
To: linux-kernel, cluster-devel; +Cc: Lukas Czerner, Steven Whitehouse
From: Lukas Czerner <lczerner@redhat.com>
Currently implementation in gfs2 uses FITRIM arguments as it were in
file system blocks units which is wrong. The FITRIM arguments
(fstrim_range.start, fstrim_range.len and fstrim_range.minlen) are
actually in bytes.
Moreover, check for start argument beyond the end of file system, len
argument being smaller than file system block and minlen argument being
bigger than biggest resource group were missing.
This commit converts the code to convert FITRIM argument to file system
blocks and also adds appropriate checks mentioned above.
All the problems were recognised by xfstests 251 and 260.
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index b6bbf71..38fe18f 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -1262,7 +1262,9 @@ int gfs2_fitrim(struct file *filp, void __user *argp)
int ret = 0;
u64 amt;
u64 trimmed = 0;
+ u64 start, end, minlen;
unsigned int x;
+ unsigned bs_shift = sdp->sd_sb.sb_bsize_shift;
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
@@ -1277,8 +1279,18 @@ int gfs2_fitrim(struct file *filp, void __user *argp)
if (ret)
return ret;
- rgd = gfs2_blk2rgrpd(sdp, r.start, 0);
- rgd_end = gfs2_blk2rgrpd(sdp, r.start + r.len, 0);
+ start = r.start >> bs_shift;
+ end = start + (r.len >> bs_shift);
+ minlen = max_t(u64, r.minlen,
+ q->limits.discard_granularity) >> bs_shift;
+
+ rgd = gfs2_blk2rgrpd(sdp, start, 0);
+ rgd_end = gfs2_blk2rgrpd(sdp, end - 1, 0);
+
+ if (end <= start ||
+ minlen > sdp->sd_max_rg_data ||
+ start > rgd_end->rd_data0 + rgd_end->rd_data)
+ return -EINVAL;
while (1) {
@@ -1290,7 +1302,9 @@ int gfs2_fitrim(struct file *filp, void __user *argp)
/* Trim each bitmap in the rgrp */
for (x = 0; x < rgd->rd_length; x++) {
struct gfs2_bitmap *bi = rgd->rd_bits + x;
- ret = gfs2_rgrp_send_discards(sdp, rgd->rd_data0, NULL, bi, r.minlen, &amt);
+ ret = gfs2_rgrp_send_discards(sdp,
+ rgd->rd_data0, NULL, bi, minlen,
+ &amt);
if (ret) {
gfs2_glock_dq_uninit(&gh);
goto out;
--
1.7.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 6/7] GFS2: Don't call file_accessed() with a shared glock
2012-11-07 10:15 GFS2: Pre-pull patch posting (fixes) Steven Whitehouse
` (4 preceding siblings ...)
2012-11-07 10:15 ` [PATCH 5/7] GFS2: Fix FITRIM argument handling Steven Whitehouse
@ 2012-11-07 10:15 ` Steven Whitehouse
2012-11-07 10:15 ` [PATCH 7/7] GFS2: Test bufdata with buffer locked and gfs2_log_lock held Steven Whitehouse
6 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-11-07 10:15 UTC (permalink / raw)
To: linux-kernel, cluster-devel; +Cc: Benjamin Marzinski, Steven Whitehouse
From: Benjamin Marzinski <bmarzins@redhat.com>
file_accessed() was being called by gfs2_mmap() with a shared glock. If it
needed to update the atime, it was crashing because it dirtied the inode in
gfs2_dirty_inode() without holding an exclusive lock. gfs2_dirty_inode()
checked if the caller was already holding a glock, but it didn't make sure that
the glock was in the exclusive state. Now, instead of calling file_accessed()
while holding the shared lock in gfs2_mmap(), file_accessed() is called after
grabbing and releasing the glock to update the inode. If file_accessed() needs
to update the atime, it will grab an exclusive lock in gfs2_dirty_inode().
gfs2_dirty_inode() now also checks to make sure that if the calling process has
already locked the glock, it has an exclusive lock.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index 377a68d..e056b4c 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -516,15 +516,13 @@ static int gfs2_mmap(struct file *file, struct vm_area_struct *vma)
struct gfs2_holder i_gh;
int error;
- gfs2_holder_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY, &i_gh);
- error = gfs2_glock_nq(&i_gh);
- if (error == 0) {
- file_accessed(file);
- gfs2_glock_dq(&i_gh);
- }
- gfs2_holder_uninit(&i_gh);
+ error = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY,
+ &i_gh);
if (error)
return error;
+ /* grab lock to update inode */
+ gfs2_glock_dq_uninit(&i_gh);
+ file_accessed(file);
}
vma->vm_ops = &gfs2_vm_ops;
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index bc73726..d648867 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -810,7 +810,8 @@ static void gfs2_dirty_inode(struct inode *inode, int flags)
return;
}
need_unlock = 1;
- }
+ } else if (WARN_ON_ONCE(ip->i_gl->gl_state != LM_ST_EXCLUSIVE))
+ return;
if (current->journal_info == NULL) {
ret = gfs2_trans_begin(sdp, RES_DINODE, 0);
--
1.7.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 7/7] GFS2: Test bufdata with buffer locked and gfs2_log_lock held
2012-11-07 10:15 GFS2: Pre-pull patch posting (fixes) Steven Whitehouse
` (5 preceding siblings ...)
2012-11-07 10:15 ` [PATCH 6/7] GFS2: Don't call file_accessed() with a shared glock Steven Whitehouse
@ 2012-11-07 10:15 ` Steven Whitehouse
6 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-11-07 10:15 UTC (permalink / raw)
To: linux-kernel, cluster-devel; +Cc: Benjamin Marzinski, Steven Whitehouse
From: Benjamin Marzinski <bmarzins@redhat.com>
In gfs2_trans_add_bh(), gfs2 was testing if a there was a bd attached to the
buffer without having the gfs2_log_lock held. It was then assuming it would
stay attached for the rest of the function. However, without either the log
lock being held of the buffer locked, __gfs2_ail_flush() could detach bd at any
time. This patch moves the locking before the test. If there isn't a bd
already attached, gfs2 can safely allocate one and attach it before locking.
There is no way that the newly allocated bd could be on the ail list,
and thus no way for __gfs2_ail_flush() to detach it.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index 01e444b..9ceccb1 100644
--- a/fs/gfs2/lops.c
+++ b/fs/gfs2/lops.c
@@ -393,12 +393,10 @@ static void buf_lo_add(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd)
struct gfs2_meta_header *mh;
struct gfs2_trans *tr;
- lock_buffer(bd->bd_bh);
- gfs2_log_lock(sdp);
tr = current->journal_info;
tr->tr_touched = 1;
if (!list_empty(&bd->bd_list))
- goto out;
+ return;
set_bit(GLF_LFLUSH, &bd->bd_gl->gl_flags);
set_bit(GLF_DIRTY, &bd->bd_gl->gl_flags);
mh = (struct gfs2_meta_header *)bd->bd_bh->b_data;
@@ -414,9 +412,6 @@ static void buf_lo_add(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd)
sdp->sd_log_num_buf++;
list_add(&bd->bd_list, &sdp->sd_log_le_buf);
tr->tr_num_buf_new++;
-out:
- gfs2_log_unlock(sdp);
- unlock_buffer(bd->bd_bh);
}
static void gfs2_check_magic(struct buffer_head *bh)
@@ -775,12 +770,10 @@ static void databuf_lo_add(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd)
struct address_space *mapping = bd->bd_bh->b_page->mapping;
struct gfs2_inode *ip = GFS2_I(mapping->host);
- lock_buffer(bd->bd_bh);
- gfs2_log_lock(sdp);
if (tr)
tr->tr_touched = 1;
if (!list_empty(&bd->bd_list))
- goto out;
+ return;
set_bit(GLF_LFLUSH, &bd->bd_gl->gl_flags);
set_bit(GLF_DIRTY, &bd->bd_gl->gl_flags);
if (gfs2_is_jdata(ip)) {
@@ -791,9 +784,6 @@ static void databuf_lo_add(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd)
} else {
list_add_tail(&bd->bd_list, &sdp->sd_log_le_ordered);
}
-out:
- gfs2_log_unlock(sdp);
- unlock_buffer(bd->bd_bh);
}
/**
diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c
index adbd278..4136270 100644
--- a/fs/gfs2/trans.c
+++ b/fs/gfs2/trans.c
@@ -155,14 +155,22 @@ void gfs2_trans_add_bh(struct gfs2_glock *gl, struct buffer_head *bh, int meta)
struct gfs2_sbd *sdp = gl->gl_sbd;
struct gfs2_bufdata *bd;
+ lock_buffer(bh);
+ gfs2_log_lock(sdp);
bd = bh->b_private;
if (bd)
gfs2_assert(sdp, bd->bd_gl == gl);
else {
+ gfs2_log_unlock(sdp);
+ unlock_buffer(bh);
gfs2_attach_bufdata(gl, bh, meta);
bd = bh->b_private;
+ lock_buffer(bh);
+ gfs2_log_lock(sdp);
}
lops_add(sdp, bd);
+ gfs2_log_unlock(sdp);
+ unlock_buffer(bh);
}
void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd)
--
1.7.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2014-09-15 9:32 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2014-09-15 9:32 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are a number of small fixes for GFS2. There is a fix for FIEMAP
on large sparse files, a negative dentry hashing fix, a fix for
flock, and a bug fix relating to d_splice_alias usage. There are
also (patches 1 and 5) a couple of updates which are less
critical, but small and low risk.
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2014-07-18 10:37 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2014-07-18 10:37 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are the current set of small fixes relating to GFS2.
This patch set contains two minor docs/spelling fixes, some fixes for
flock, a change to use GFP_NOFS to avoid recursion on a rarely used code
path and a fix for a race relating to the glock lru,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2014-01-02 12:28 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2014-01-02 12:28 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here is a set of small fixes for GFS2. There is a fix to drop
s_umount which is copied in from the core vfs, two patches
relate to a hard to hit "use after free" and memory leak.
Two patches related to using DIO and buffered I/O on the same
file to ensure correct operation in relation to glock state
changes. The final patch adds an RCU read lock to ensure
correct locking on an error path,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2013-11-22 10:35 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2013-11-22 10:35 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are a couple of very small, but important, fixes,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2013-08-19 8:48 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2013-08-19 8:48 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Out of these fives patches, the one for ensuring that the number of
revokes is not exceeded, and the one for checking the glock is not
already held in gfs2_getxattr are the two most important. The latter
can be triggered by selinux.
The other three patches are very small and fix mostly fairly
trivial issues,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2013-06-04 13:40 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2013-06-04 13:40 UTC (permalink / raw)
To: linux-kernel, cluster-devel
There are four patches this time. The first fixes a problem where the
wrong descriptor type was being written into the log for journaled data
blocks. The second fixes a race relating to the deallocation of allocator
data. The third provides a fallback if kmalloc is unable to satisfy a
request to allocate a directory hash table. The fourth fixes the iopen
glock caching so that inodes are deleted in a more timely manner after
rmdir/unlink,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2013-05-24 13:37 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2013-05-24 13:37 UTC (permalink / raw)
To: linux-kernel, cluster-devel
This time there are just four fixes. There are a couple of minor updates
to the quota code, a fix for KConfig to ensure that only valid combinations
including GFS2 can be built, and a fix for a typo affecting end i/o
processing when writing the journal.
Also, there is a temporary fix for a performance regression relating to
block reservations and directories. A longer fix will be applied in
due course, but this deals with the most immediate problem for now,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2012-09-13 9:42 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-09-13 9:42 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are three GFS2 fixes for the current kernel tree. These are all
related to the block reservation code which was added at the merge
window. That code will be getting an update at the forthcoming merge
window too. In the mean time though there are a few smaller issues
which should be fixed.
The first patch resolves an issue with write sizes of greater than
32 bits with the size hinting code. The second ensures that the
allocation data structure is initialised when using xattrs and the
third takes into account allocations which may have been made by
other nodes which affect a reservation on the local node,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2012-04-11 8:56 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-04-11 8:56 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are four fixes for issues that have come up since the last
merge window,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2012-02-28 11:11 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2012-02-28 11:11 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are four patches which provided fixes for bugs found in the
current upstream code. Please see individual patches for
descriptions,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2011-07-14 8:21 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2011-07-14 8:21 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
The following three fixes should help ensure that 3.0 is the best
release yet, GFS2-wise at least. I've had the first two queued for
some time waiting for the final one of this set. All three are relatively
short, although the third is a bit longer than the others, mainly
due to the extra comments added describing the inode eviction process,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2011-05-23 12:39 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2011-05-23 12:39 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are a couple of small fixes which just missed the previous pull
request. Both fairly short and self-explanatory,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2011-04-19 8:40 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2011-04-19 8:40 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are four fixes for GFS2. See the individual patches for the detailed
descriptions,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2010-07-15 13:57 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2010-07-15 13:57 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are a few small fixes for GFS2,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2010-05-25 8:21 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2010-05-25 8:21 UTC (permalink / raw)
To: cluster-devel, linux-kernel
Hi,
These are three important, but relatively small, bug fixes for GFS2.
The first prevents a kernel BUG triggering in a relatively unlikely
(but possible) scenario when a log flush caused by glock demotion
races with a log flush from some other initiator (e.g. fsync).
The second and third patches add extra conditions to two areas
of code. This makes their behaviour match ext3 in those cases,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2010-02-04 9:46 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2010-02-04 9:46 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Hi,
Here are a couple of patches which between them fix a problem where
occasionally it was possible for the GFS2 module to be unloaded
before all the glocks were deallocated, which, needless to say, made
the slab allocator unhappy,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2010-01-11 9:11 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2010-01-11 9:11 UTC (permalink / raw)
To: linux-kernel, cluster-devel
Here are four small fixes for GFS2. Assuming that nobody spots
any errors, I'll be sending a pull request for these shortly,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
* GFS2: Pre-pull patch posting (fixes)
@ 2009-07-30 13:45 Steven Whitehouse
0 siblings, 0 replies; 26+ messages in thread
From: Steven Whitehouse @ 2009-07-30 13:45 UTC (permalink / raw)
To: cluster-devel, linux-kernel
Hi,
Here is the current content of the GFS2 -fixes git tree. Nothing
very exciting this time... some fixes for issues we've
had relating to flushing glocks/memory usage, plus a couple of
other fixes relating to statfs and the timely removal of inodes
which have been unlinked on a remote node,
Steve.
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2014-09-15 9:33 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-07 10:15 GFS2: Pre-pull patch posting (fixes) Steven Whitehouse
2012-11-07 10:15 ` [PATCH 1/7] GFS2: Fix an unchecked error from gfs2_rs_alloc Steven Whitehouse
2012-11-07 10:15 ` [PATCH 2/7] GFS2: Fix possible null pointer deref in gfs2_rs_alloc Steven Whitehouse
2012-11-07 10:15 ` [PATCH 3/7] GFS2: Clean up some unused assignments Steven Whitehouse
2012-11-07 10:15 ` [PATCH 4/7] GFS2: Require user to provide argument for FITRIM Steven Whitehouse
2012-11-07 10:15 ` [PATCH 5/7] GFS2: Fix FITRIM argument handling Steven Whitehouse
2012-11-07 10:15 ` [PATCH 6/7] GFS2: Don't call file_accessed() with a shared glock Steven Whitehouse
2012-11-07 10:15 ` [PATCH 7/7] GFS2: Test bufdata with buffer locked and gfs2_log_lock held Steven Whitehouse
-- strict thread matches above, loose matches on Subject: below --
2014-09-15 9:32 GFS2: Pre-pull patch posting (fixes) Steven Whitehouse
2014-07-18 10:37 Steven Whitehouse
2014-01-02 12:28 Steven Whitehouse
2013-11-22 10:35 Steven Whitehouse
2013-08-19 8:48 Steven Whitehouse
2013-06-04 13:40 Steven Whitehouse
2013-05-24 13:37 Steven Whitehouse
2012-09-13 9:42 Steven Whitehouse
2012-04-11 8:56 Steven Whitehouse
2012-02-28 11:11 Steven Whitehouse
2011-07-14 8:21 Steven Whitehouse
2011-05-23 12:39 Steven Whitehouse
2011-04-19 8:40 Steven Whitehouse
2010-07-15 13:57 Steven Whitehouse
2010-05-25 8:21 Steven Whitehouse
2010-02-04 9:46 Steven Whitehouse
2010-01-11 9:11 Steven Whitehouse
2009-07-30 13:45 Steven Whitehouse
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).