cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
* [Cluster-devel] [PATCH 0/4] patches related to file unlink->delete->new
@ 2015-12-18 19:02 Bob Peterson
  2015-12-18 19:02 ` [Cluster-devel] [PATCH 1/4] GFS2: Prevent delete work from occurring on glocks used for create Bob Peterson
                   ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: Bob Peterson @ 2015-12-18 19:02 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Back on October 22, I posted a set of fourteen patches related to the
transition of inodes from unlinked to free. Since then, I've found and
fixed several problems with the patches. I've also treated several of
those patches as separate problems. What remains is this set of four
patches.

1. The first patch prevents collisions between locks being used to delete
   inodes and the same glock being used to create a new inode. This
   prevents all kinds of bad problems, most of which have to do with
   glock reference count problems.
2. The second patch makes it so that we no longer filter out I_FREEING
   inodes anymore. As I stated in an email from 10 December, if we tell
   the delete code the inode does not exist, it will quit trying to
   delete it, and the dinode on disk will be stuck in "unlinked". With
   this patch, inodes that are in I_FREEING will blocked until vfs (and
   GFS2) are done with them. Then a new inode is created and used for
   the transition from unlinked to free.
3. The third patch simply removes a parameter from gfs2_inode_lookup
   which is no longer needed, since it is no longer referenced.
4. The final patch changes the delete code so that it uses the normal
   inode lookup code to identify inodes that need to be transitioned
   from unlinked to free. This patch adds a new parameter "for_del"
   to function gfs2_inode_lookup() which instructs the code to verify
   that the block is unlinked before proceeding. This makes sure the
   glock work is all safely done with the correct lock ordering.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>

Bob Peterson (4):
  GFS2: Prevent delete work from occurring on glocks used for create
  GFS2: Don't filter out I_FREEING inodes anymore
  GFS2: Eliminate parameter non_block on gfs2_inode_lookup
  GFS2: Make deletes use regular inode_lookup with special code path

 fs/gfs2/export.c |  2 +-
 fs/gfs2/glock.c  | 14 ++++----
 fs/gfs2/incore.h |  1 +
 fs/gfs2/inode.c  | 99 ++++++++++++++++++++++----------------------------------
 fs/gfs2/inode.h  |  4 +--
 5 files changed, 49 insertions(+), 71 deletions(-)

-- 
2.5.0



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2016-03-23 16:13 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-18 19:02 [Cluster-devel] [PATCH 0/4] patches related to file unlink->delete->new Bob Peterson
2015-12-18 19:02 ` [Cluster-devel] [PATCH 1/4] GFS2: Prevent delete work from occurring on glocks used for create Bob Peterson
2016-02-02 11:40   ` Steven Whitehouse
2015-12-18 19:02 ` [Cluster-devel] [PATCH 2/4] GFS2: Don't filter out I_FREEING inodes anymore Bob Peterson
2016-02-23 10:15   ` Steven Whitehouse
2015-12-18 19:02 ` [Cluster-devel] [PATCH 3/4] GFS2: Eliminate parameter non_block on gfs2_inode_lookup Bob Peterson
2016-02-23 10:17   ` Steven Whitehouse
2015-12-18 19:02 ` [Cluster-devel] [PATCH 4/4] GFS2: Make deletes use regular inode_lookup with special code path Bob Peterson
2016-02-23 10:25   ` Steven Whitehouse
2016-02-24 20:42     ` Bob Peterson
2016-02-25 10:07       ` Steven Whitehouse
2016-03-15 13:50         ` Bob Peterson
2016-03-16 11:09           ` Steven Whitehouse
2016-03-17 16:01             ` Bob Peterson
2016-03-17 16:27               ` Steven Whitehouse
2016-03-21 16:49   ` Benjamin Marzinski
2016-03-21 18:12     ` Bob Peterson
2016-03-21 18:56       ` Benjamin Marzinski
2016-03-23 16:13         ` Bob Peterson

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).