Skip to content

Commit 6830d50

Browse files
committed
Merge tag 'gfs2-v6.1-rc7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2
Pull gfs2 updtaes from Andreas Gruenbacher: - Revert a change to delete_work_func() that has gone wrong in commit c412a97 ("gfs2: Use TRY lock in gfs2_inode_lookup for UNLINKED inodes"). - Avoid dequeuing GL_ASYNC glock holders twice by first checking if the holder is still queued. - gfs2: Always check the inode size of inline inodes when reading in inodes to prevent corrupt filesystem images from causing weid errors. - Properly handle a race between gfs2_create_inode() and gfs2_inode_lookup() that causes insert_inode_locked4() to return -EBUSY. - Fix and clean up the interaction between gfs2_create_inode() and gfs2_evict_inode() by completely handling the inode deallocation and destruction in gfs2_evict_inode(). - Remove support for glock holder auto-demotion as we have no current plans of using this feature again. - And a few more minor cleanups and clarifications. * tag 'gfs2-v6.1-rc7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: gfs2: Remove support for glock holder auto-demotion (2) gfs2: Remove support for glock holder auto-demotion gfs2: Minor gfs2_try_evict cleanup gfs2: Partially revert gfs2_inode_lookup change gfs2: Add gfs2_inode_lookup comment gfs2: Uninline and improve glock_{set,clear}_object gfs2: Simply dequeue iopen glock in gfs2_evict_inode gfs2: Clean up after gfs2_create_inode rework gfs2: Avoid dequeuing GL_ASYNC glock holders twice gfs2: Make gfs2_glock_hold return its glock argument gfs2: Always check inode size of inline inodes gfs2: Cosmetic gfs2_dinode_{in,out} cleanup gfs2: Handle -EBUSY result of insert_inode_locked4 gfs2: Fix and clean up create / evict interaction gfs2: Clean up initialization of "ip" in gfs2_create_inode gfs2: Get rid of ghs[] in gfs2_create_inode gfs2: Add extra error check in alloc_dinode
2 parents 77856d9 + 6b46a06 commit 6830d50

File tree

11 files changed

+234
-333
lines changed

11 files changed

+234
-333
lines changed

fs/gfs2/aops.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,8 +427,6 @@ static int stuffed_readpage(struct gfs2_inode *ip, struct page *page)
427427
return error;
428428

429429
kaddr = kmap_atomic(page);
430-
if (dsize > gfs2_max_stuffed_size(ip))
431-
dsize = gfs2_max_stuffed_size(ip);
432430
memcpy(kaddr, dibh->b_data + sizeof(struct gfs2_dinode), dsize);
433431
memset(kaddr + dsize, 0, PAGE_SIZE - dsize);
434432
kunmap_atomic(kaddr);

fs/gfs2/bmap.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,6 @@ static int gfs2_unstuffer_page(struct gfs2_inode *ip, struct buffer_head *dibh,
6161
void *kaddr = kmap(page);
6262
u64 dsize = i_size_read(inode);
6363

64-
if (dsize > gfs2_max_stuffed_size(ip))
65-
dsize = gfs2_max_stuffed_size(ip);
66-
6764
memcpy(kaddr, dibh->b_data + sizeof(struct gfs2_dinode), dsize);
6865
memset(kaddr + dsize, 0, PAGE_SIZE - dsize);
6966
kunmap(page);

fs/gfs2/file.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1445,14 +1445,13 @@ static int gfs2_lock(struct file *file, int cmd, struct file_lock *fl)
14451445

14461446
static void __flock_holder_uninit(struct file *file, struct gfs2_holder *fl_gh)
14471447
{
1448-
struct gfs2_glock *gl = fl_gh->gh_gl;
1448+
struct gfs2_glock *gl = gfs2_glock_hold(fl_gh->gh_gl);
14491449

14501450
/*
14511451
* Make sure gfs2_glock_put() won't sleep under the file->f_lock
14521452
* spinlock.
14531453
*/
14541454

1455-
gfs2_glock_hold(gl);
14561455
spin_lock(&file->f_lock);
14571456
gfs2_holder_uninit(fl_gh);
14581457
spin_unlock(&file->f_lock);

0 commit comments

Comments
 (0)