]> Git Repo - linux.git/commitdiff
Merge tag 'dlm-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm
authorLinus Torvalds <[email protected]>
Wed, 23 May 2012 02:31:38 +0000 (19:31 -0700)
committerLinus Torvalds <[email protected]>
Wed, 23 May 2012 02:31:38 +0000 (19:31 -0700)
Pull dlm updates from David Teigland:
 "This set includes some minor fixes and improvements.  The one large
  patch addresses the special "nodir" mode, which has been a long
  neglected proof of concept, but with these fixes seems to be quite
  usable.  It allows the resource master to be assigned statically
  instead of dynamically, which can improve performance if there is
  little locality and most resources are shared."

* tag 'dlm-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
  dlm: NULL dereference on failure in kmem_cache_create()
  gfs2: fix recovery during unmount
  dlm: fixes for nodir mode
  dlm: improve error and debug messages
  dlm: avoid unnecessary search in search_rsb
  dlm: limit rcom debug messages
  dlm: fix waiter recovery
  dlm: prevent connections during shutdown

1  2 
fs/gfs2/incore.h
fs/gfs2/ops_fstype.c

diff --combined fs/gfs2/incore.h
index aa9949e5de26e74eadd9dd290169d9ae45b5310f,c7975bf4fd437c2900a5439a4cfe527efbecd5f5..67fd6beffeced9b7a91733d52d39ba5e8aec95f5
@@@ -26,7 -26,7 +26,7 @@@
  #define DIO_METADATA  0x00000020
  
  struct gfs2_log_operations;
 -struct gfs2_log_element;
 +struct gfs2_bufdata;
  struct gfs2_holder;
  struct gfs2_glock;
  struct gfs2_quota_data;
@@@ -52,7 -52,7 +52,7 @@@ struct gfs2_log_header_host 
   */
  
  struct gfs2_log_operations {
 -      void (*lo_add) (struct gfs2_sbd *sdp, struct gfs2_log_element *le);
 +      void (*lo_add) (struct gfs2_sbd *sdp, struct gfs2_bufdata *bd);
        void (*lo_before_commit) (struct gfs2_sbd *sdp);
        void (*lo_after_commit) (struct gfs2_sbd *sdp, struct gfs2_ail *ai);
        void (*lo_before_scan) (struct gfs2_jdesc *jd,
        const char *lo_name;
  };
  
 -struct gfs2_log_element {
 -      struct list_head le_list;
 -      const struct gfs2_log_operations *le_ops;
 -};
 -
  #define GBF_FULL 1
  
  struct gfs2_bitmap {
@@@ -113,10 -118,15 +113,10 @@@ TAS_BUFFER_FNS(Zeronew, zeronew
  struct gfs2_bufdata {
        struct buffer_head *bd_bh;
        struct gfs2_glock *bd_gl;
 +      u64 bd_blkno;
  
 -      union {
 -              struct list_head list_tr;
 -              u64 blkno;
 -      } u;
 -#define bd_list_tr u.list_tr
 -#define bd_blkno u.blkno
 -
 -      struct gfs2_log_element bd_le;
 +      struct list_head bd_list;
 +      const struct gfs2_log_operations *bd_ops;
  
        struct gfs2_ail *bd_ail;
        struct list_head bd_ail_st_list;
@@@ -401,10 -411,13 +401,10 @@@ struct gfs2_trans 
  
        int tr_touched;
  
 -      unsigned int tr_num_buf;
        unsigned int tr_num_buf_new;
        unsigned int tr_num_databuf_new;
        unsigned int tr_num_buf_rm;
        unsigned int tr_num_databuf_rm;
 -      struct list_head tr_list_buf;
 -
        unsigned int tr_num_revoke;
        unsigned int tr_num_revoke_rm;
  };
@@@ -543,7 -556,6 +543,6 @@@ struct gfs2_sb_host 
  struct lm_lockstruct {
        int ls_jid;
        unsigned int ls_first;
-       unsigned int ls_nodir;
        const struct lm_lockops *ls_ops;
        dlm_lockspace_t *ls_dlm;
  
@@@ -686,6 -698,7 +685,6 @@@ struct gfs2_sbd 
  
        struct list_head sd_log_le_buf;
        struct list_head sd_log_le_revoke;
 -      struct list_head sd_log_le_rg;
        struct list_head sd_log_le_databuf;
        struct list_head sd_log_le_ordered;
  
  
        struct rw_semaphore sd_log_flush_lock;
        atomic_t sd_log_in_flight;
 +      struct bio *sd_log_bio;
        wait_queue_head_t sd_log_flush_wait;
 +      int sd_log_error;
  
        unsigned int sd_log_flush_head;
        u64 sd_log_flush_wrapped;
diff --combined fs/gfs2/ops_fstype.c
index c5871ae4056185dc687ea0bc6b956c5897b5cd7a,018b4c13db926f47ff75e08e4a53111681419f7a..b8c250fc4922e8dd501a0c12c1481f7d1a32e0d8
@@@ -99,6 -99,7 +99,6 @@@ static struct gfs2_sbd *init_sbd(struc
        atomic_set(&sdp->sd_log_pinned, 0);
        INIT_LIST_HEAD(&sdp->sd_log_le_buf);
        INIT_LIST_HEAD(&sdp->sd_log_le_revoke);
 -      INIT_LIST_HEAD(&sdp->sd_log_le_rg);
        INIT_LIST_HEAD(&sdp->sd_log_le_databuf);
        INIT_LIST_HEAD(&sdp->sd_log_le_ordered);
  
@@@ -993,6 -994,7 +993,7 @@@ static int gfs2_lm_mount(struct gfs2_sb
                                ls->ls_jid = option;
                        break;
                case Opt_id:
+               case Opt_nodir:
                        /* Obsolete, but left for backward compat purposes */
                        break;
                case Opt_first:
                                goto hostdata_error;
                        ls->ls_first = option;
                        break;
-               case Opt_nodir:
-                       ret = match_int(&tmp[0], &option);
-                       if (ret || (option != 0 && option != 1))
-                               goto hostdata_error;
-                       ls->ls_nodir = option;
-                       break;
                case Opt_err:
                default:
  hostdata_error:
This page took 0.075669 seconds and 4 git commands to generate.