[Ocfs2-commits] jlbec commits r972 - in trunk/src: . inc
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Wed Jun 2 14:19:51 CDT 2004
Author: jlbec
Date: 2004-06-02 13:19:49 -0500 (Wed, 02 Jun 2004)
New Revision: 972
Modified:
trunk/src/dlm.c
trunk/src/file.c
trunk/src/inc/
trunk/src/inc/ocfs.h
trunk/src/lockres.c
trunk/src/namei.c
trunk/src/nm.c
trunk/src/sysfile.c
trunk/src/volcfg.c
Log:
o DISK_LOCK() introduced, and all uses of DISK_LOCK_FOO() removed.
o struct ocfs_disk_lock reordered.
Modified: trunk/src/dlm.c
===================================================================
--- trunk/src/dlm.c 2004-06-02 16:16:53 UTC (rev 971)
+++ trunk/src/dlm.c 2004-06-02 18:19:49 UTC (rev 972)
@@ -219,8 +219,8 @@
goto finally;
}
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_READ(bh); /* read */
- curr_master = DISK_LOCK_CURRENT_MASTER (fe);
- lock_level = DISK_LOCK_FILE_LOCK (fe);
+ curr_master = DISK_LOCK(fe)->curr_master;
+ lock_level = DISK_LOCK(fe)->file_lock;
OCFS_BH_PUT_DATA(bh);
/* This will always be zero when the first Node comes up after reboot */
@@ -234,8 +234,8 @@
/* Reset the lock as not owned and return success?? */
/* This needs to be under some sort of cluster wide lock */
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(bh); /* write */
- DISK_LOCK_CURRENT_MASTER (fe) = OCFS_INVALID_NODE_NUM;
- DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_NO_LOCK;
+ DISK_LOCK(fe)->curr_master = OCFS_INVALID_NODE_NUM;
+ DISK_LOCK(fe)->file_lock = OCFS_DLM_NO_LOCK;
OCFS_BH_PUT_DATA(bh);
tmpstat = ocfs_write_bh (osb, bh, 0, NULL);
if (tmpstat < 0) {
@@ -293,8 +293,8 @@
goto finally;
}
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_READ(bh); /* read */
- curr_master = DISK_LOCK_CURRENT_MASTER (fe);
- lock_level = DISK_LOCK_FILE_LOCK (fe);
+ curr_master = DISK_LOCK(fe)->curr_master;
+ lock_level = DISK_LOCK(fe)->file_lock;
is_dir = (fe->attribs & OCFS_ATTRIB_DIRECTORY);
OCFS_BH_PUT_DATA(bh);
@@ -308,8 +308,8 @@
/* Reset the lock as not owned and return success?? */
/* This needs to be under some sort of cluster wide lock, */
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(bh); /* write */
- DISK_LOCK_CURRENT_MASTER (fe) = OCFS_INVALID_NODE_NUM;
- DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_NO_LOCK;
+ DISK_LOCK(fe)->curr_master = OCFS_INVALID_NODE_NUM;
+ DISK_LOCK(fe)->file_lock = OCFS_DLM_NO_LOCK;
OCFS_BH_PUT_DATA(bh);
tmpstat = ocfs_write_bh (osb, bh, 0, NULL);
if (tmpstat < 0) {
@@ -387,7 +387,7 @@
}
LOG_TRACE_ARGS("broke cache lock, setting to NO_LOCK\n");
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(bh); /* write */
- DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_NO_LOCK;
+ DISK_LOCK(fe)->file_lock = OCFS_DLM_NO_LOCK;
lock_level = OCFS_DLM_NO_LOCK;
OCFS_BH_PUT_DATA(bh);
tmpstat = ocfs_write_bh (osb, bh, 0, inode);
@@ -647,35 +647,35 @@
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_READ(*bh); /* read */
if (flags & DLOCK_FLAG_MASTER &&
- DISK_LOCK_CURRENT_MASTER (fe) != lockres->master_node_num) {
+ DISK_LOCK(fe)->curr_master != lockres->master_node_num) {
if (!changed) {
OCFS_BH_PUT_DATA(*bh);
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(*bh); /* write */
}
changed = 1;
- DISK_LOCK_CURRENT_MASTER (fe) = lockres->master_node_num;
+ DISK_LOCK(fe)->curr_master = lockres->master_node_num;
}
if (flags & DLOCK_FLAG_LOCK &&
- DISK_LOCK_FILE_LOCK (fe) != lockres->lock_type) {
+ DISK_LOCK(fe)->file_lock != lockres->lock_type) {
if (!changed) {
OCFS_BH_PUT_DATA(*bh);
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(*bh); /* write */
}
changed = 1;
- DISK_LOCK_FILE_LOCK (fe) = lockres->lock_type;
+ DISK_LOCK(fe)->file_lock = lockres->lock_type;
}
if (flags & DLOCK_FLAG_OPEN_MAP) {
if (flags & DLOCK_FLAG_ADD_SELF)
lockres->oin_openmap |= (1ULL << osb->node_num);
- if (DISK_LOCK_OIN_MAP (fe) != lockres->oin_openmap) {
+ if (DISK_LOCK(fe)->oin_node_map != lockres->oin_openmap) {
if (!changed) {
OCFS_BH_PUT_DATA(*bh);
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(*bh); /* write */
}
changed = 1;
- DISK_LOCK_OIN_MAP (fe) = lockres->oin_openmap;
+ DISK_LOCK(fe)->oin_node_map = lockres->oin_openmap;
}
}
@@ -870,10 +870,10 @@
BUG();
if (lockres->master_node_num != osb->node_num ||
- lockres->master_node_num != DISK_LOCK_CURRENT_MASTER (disklock)) {
- lockres->master_node_num = DISK_LOCK_CURRENT_MASTER (disklock);
- lockres->lock_type = DISK_LOCK_FILE_LOCK (disklock);
- lockres->oin_openmap = DISK_LOCK_OIN_MAP (disklock);
+ lockres->master_node_num != DISK_LOCK(disklock)->curr_master) {
+ lockres->master_node_num = DISK_LOCK(disklock)->curr_master;
+ lockres->lock_type = DISK_LOCK(disklock)->file_lock;
+ lockres->oin_openmap = DISK_LOCK(disklock)->oin_node_map;
}
updated = 1;
OCFS_BH_PUT_DATA(*b);
@@ -1068,8 +1068,8 @@
}
}
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_READ(*b); /* read */
- oin_node_map = DISK_LOCK_OIN_MAP (fe);
- curr_master = DISK_LOCK_CURRENT_MASTER (fe);
+ oin_node_map = DISK_LOCK(fe)->oin_node_map;
+ curr_master = DISK_LOCK(fe)->curr_master;
OCFS_BH_PUT_DATA(*b);
if (!IS_VALID_NODE_NUM (curr_master)) {
@@ -1165,20 +1165,20 @@
LOG_TRACE_ARGS("writing lock now... releasemaster: %s, level: %d, master: %d\n",
flags & FLAG_FILE_RELEASE_MASTER ? "yes" : "no",
- DISK_LOCK_FILE_LOCK (fe),
- DISK_LOCK_CURRENT_MASTER (fe));
+ DISK_LOCK(fe)->file_lock,
+ DISK_LOCK(fe)->curr_master);
if (flags & FLAG_FILE_RELEASE_MASTER)
- DISK_LOCK_CURRENT_MASTER (fe) = OCFS_INVALID_NODE_NUM;
+ DISK_LOCK(fe)->curr_master = OCFS_INVALID_NODE_NUM;
- if ((DISK_LOCK_FILE_LOCK (fe) == OCFS_DLM_ENABLE_CACHE_LOCK) &&
- (DISK_LOCK_CURRENT_MASTER (fe) == osb->node_num)) {
+ if ((DISK_LOCK(fe)->file_lock == OCFS_DLM_ENABLE_CACHE_LOCK) &&
+ (DISK_LOCK(fe)->curr_master == osb->node_num)) {
lockres->lock_type = OCFS_DLM_ENABLE_CACHE_LOCK;
cachelock = 1;
LOG_TRACE_STR("keeping at CACHE_LOCK");
}
else {
LOG_TRACE_STR("setting to NO_LOCK");
- DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_NO_LOCK;
+ DISK_LOCK(fe)->file_lock = OCFS_DLM_NO_LOCK;
}
OCFS_BH_PUT_DATA(*b);
@@ -1347,8 +1347,8 @@
if (bh) {
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_READ(bh); /* read */
/* may not need to rewrite the lock later if we already have a cachelock */
- need_lock_write = (DISK_LOCK_CURRENT_MASTER (fe) != osb->node_num ||
- DISK_LOCK_FILE_LOCK (fe) != OCFS_DLM_ENABLE_CACHE_LOCK);
+ need_lock_write = (DISK_LOCK(fe)->curr_master != osb->node_num ||
+ DISK_LOCK(fe)->file_lock != OCFS_DLM_ENABLE_CACHE_LOCK);
OCFS_BH_PUT_DATA(bh);
} else
need_lock_write = 0;
@@ -1456,7 +1456,7 @@
/* pick up any change to the open map */
if (bh) {
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_READ(bh); /* read */
- lockres->oin_openmap = DISK_LOCK_OIN_MAP (fe);
+ lockres->oin_openmap = DISK_LOCK(fe)->oin_node_map;
OCFS_BH_PUT_DATA(bh);
}
bail:
Modified: trunk/src/file.c
===================================================================
--- trunk/src/file.c 2004-06-02 16:16:53 UTC (rev 971)
+++ trunk/src/file.c 2004-06-02 18:19:49 UTC (rev 972)
@@ -621,8 +621,8 @@
goto leave;
}
- if ((DISK_LOCK_FILE_LOCK (fileEntry) == OCFS_DLM_ENABLE_CACHE_LOCK) &&
- (DISK_LOCK_CURRENT_MASTER (fileEntry) == osb->node_num))
+ if ((DISK_LOCK(fileEntry)->file_lock == OCFS_DLM_ENABLE_CACHE_LOCK) &&
+ (DISK_LOCK(fileEntry)->curr_master == osb->node_num))
locktype = OCFS_DLM_ENABLE_CACHE_LOCK;
else
locktype = OCFS_DLM_EXCLUSIVE_LOCK;
@@ -997,8 +997,8 @@
lockId = fe->this_sector;
lockFlags = FLAG_FILE_TRUNCATE;
- if ((DISK_LOCK_FILE_LOCK (fe) == OCFS_DLM_ENABLE_CACHE_LOCK)
- && (DISK_LOCK_CURRENT_MASTER (fe) == osb->node_num))
+ if ((DISK_LOCK(fe)->file_lock == OCFS_DLM_ENABLE_CACHE_LOCK)
+ && (DISK_LOCK(fe)->curr_master == osb->node_num))
locktype = OCFS_DLM_ENABLE_CACHE_LOCK;
else
locktype = OCFS_DLM_EXCLUSIVE_LOCK;
Property changes on: trunk/src/inc
___________________________________________________________________
Name: svn:ignore
+ .*.sw?
Modified: trunk/src/inc/ocfs.h
===================================================================
--- trunk/src/inc/ocfs.h 2004-06-02 16:16:53 UTC (rev 971)
+++ trunk/src/inc/ocfs.h 2004-06-02 18:19:49 UTC (rev 972)
@@ -643,15 +643,11 @@
DLOCK_FLAG_LAST_UPDATE)
-#define DISK_LOCK(x) ((ocfs_disk_lock *)(x))
+#define DISK_LOCK(x) ((ocfs_disk_lock *)&(x)->disk_lock)
#define DISK_LOCK_CURRENT_MASTER(x) ( ((ocfs_disk_lock *)x)->curr_master )
#define DISK_LOCK_OIN_MAP(x) ( ((ocfs_disk_lock *)x)->oin_node_map )
#define DISK_LOCK_FILE_LOCK(x) ( ((ocfs_disk_lock *)x)->file_lock )
-#define DISK_LOCK_LAST_READ(x) ( ((ocfs_disk_lock *)x)->last_read_time )
-#define DISK_LOCK_LAST_WRITE(x) ( ((ocfs_disk_lock *)x)->last_write_time )
-#define DISK_LOCK_READER_NODE(x) ( ((ocfs_disk_lock *)x)->reader_node_num )
#define DISK_LOCK_SEQNUM(x) ( ((ocfs_disk_lock *)x)->dlock_seq_num )
-#define DISK_LOCK_WRITER_NODE(x) ( ((ocfs_disk_lock *)x)->writer_node_num )
#define MAX_VOL_ID_LENGTH 16
#define MAX_VOL_LABEL_LEN 64
@@ -749,19 +745,17 @@
}
ocfs_vol_disk_hdr; // END CLASS
-typedef struct _ocfs_disk_lock // CLASS
+typedef struct _ocfs_disk_lock
{
- __u32 curr_master; // NODENUM
- __u8 file_lock; // LOCKLEVEL
- __u8 odl_pad[3]; // UNUSED
- __u64 last_write_time; // NUMBER RANGE(0,ULONG_LONG_MAX
- __u64 last_read_time; // NUMBER RANGE(0,ULONG_LONG_MAX
- __u32 writer_node_num; // NODENUM
- __u32 reader_node_num; // NODENUM
- __u64 oin_node_map; // NODEBITMAP
- __u64 dlock_seq_num; // NUMBER RANGE(0,ULONG_LONG_MAX)
+/*00*/ __u32 curr_master; /* Node number of current master */
+ __u8 file_lock; /* Lock level */
+ __u8 odl_pad[3]; /* Pad to u64 */
+ __u64 dlock_seq_num; /* Lock transaction seqnum */
+/*10*/ __u64 oin_node_map; /* Bitmap of interested nodes */
+ __u64 odl_reserved[3]; /* Space for larger node map */
+/*20*/
}
-ocfs_disk_lock; // END CLASS
+ocfs_disk_lock;
typedef struct _ocfs_vol_label // CLASS
{
@@ -811,7 +805,7 @@
__u32 version; // NUMBER RANGE(0,ULONG_MAX)
__u32 num_nodes; // NUMBER RANGE(0,32)
__u32 last_node; // NUMBER RANGE(0,32)
- __u32 onch_pad; // UNUSED
+ __u32 onch_pad; // UNUSED
__u64 cfg_seq_num; // NUMBER RANGE(0,ULONG_LONG_MAX)
}
ocfs_node_config_hdr; // END CLASS
@@ -1374,8 +1368,8 @@
__u32 total_bits;
} bitinfo;
} u;
- __u64 alloc_file_off; // NUMBER RANGE(0,ULONG_LONG_MAX)
- __u32 alloc_node; // NUMBER RANGE(0,31)
+ __u64 alloc_file_off; // NUMBER RANGE(0,ULONG_LONG_MAX)
+ __u32 alloc_node; // NUMBER RANGE(0,31)
/* sizeof(fe) = 508 bytes */
}
ocfs_file_entry; // END CLASS
@@ -1409,7 +1403,7 @@
__u64 lock_seq_num;
__u32 flags;
__u8 open_handle;
- __u8 odmh_pad[3];
+ __u8 odmh_pad[3];
} ocfs_dlm_msg_hdr;
typedef ocfs_dlm_msg_hdr ocfs_dlm_req_master;
Modified: trunk/src/lockres.c
===================================================================
--- trunk/src/lockres.c 2004-06-02 16:16:53 UTC (rev 971)
+++ trunk/src/lockres.c 2004-06-02 18:19:49 UTC (rev 972)
@@ -89,9 +89,9 @@
if (!IS_VALID_FILE_ENTRY(fe))
BUG();
- lockres->lock_type = DISK_LOCK_FILE_LOCK (fe);
- lockres->master_node_num = DISK_LOCK_CURRENT_MASTER (fe);
- lockres->oin_openmap = DISK_LOCK_OIN_MAP (fe);
+ lockres->lock_type = DISK_LOCK(fe)->file_lock;
+ lockres->master_node_num = DISK_LOCK(fe)->curr_master;
+ lockres->oin_openmap = DISK_LOCK(fe)->oin_node_map;
if (lockres->readonly_node != OCFS_INVALID_NODE_NUM &&
lockres->readonly_node != lockres->master_node_num) {
Modified: trunk/src/namei.c
===================================================================
--- trunk/src/namei.c 2004-06-02 16:16:53 UTC (rev 971)
+++ trunk/src/namei.c 2004-06-02 18:19:49 UTC (rev 972)
@@ -404,11 +404,9 @@
SET_VALID_BIT (fe->sync_flags);
fe->sync_flags &= ~(OCFS_SYNC_FLAG_CHANGE);
DISK_LOCK_SEQNUM (fe) = 0;
- DISK_LOCK_CURRENT_MASTER (fe) = osb->node_num;
- DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_ENABLE_CACHE_LOCK;
- DISK_LOCK_READER_NODE (fe) = osb->node_num;
- DISK_LOCK_WRITER_NODE (fe) = osb->node_num;
- DISK_LOCK_OIN_MAP(fe) = (1 << osb->node_num);
+ DISK_LOCK(fe)->curr_master = osb->node_num;
+ DISK_LOCK(fe)->file_lock = OCFS_DLM_ENABLE_CACHE_LOCK;
+ DISK_LOCK(fe)->oin_node_map = (1 << osb->node_num);
fe->create_time = fe->modify_time = OCFS_CURRENT_TIME;
fe->dir_node_ptr = GET_INODE_FEOFF(dir);
OCFS_BH_PUT_DATA(*new_fe_bh);
Modified: trunk/src/nm.c
===================================================================
--- trunk/src/nm.c 2004-06-02 16:16:53 UTC (rev 971)
+++ trunk/src/nm.c 2004-06-02 18:19:49 UTC (rev 972)
@@ -874,7 +874,7 @@
LOG_ERROR_STATUS (status);
if (status >= 0) {
fe = (ocfs_file_entry *) OCFS_BH_GET_DATA_WRITE(fe_bh); /* write */
- DISK_LOCK_CURRENT_MASTER (fe) = node_num;
+ DISK_LOCK(fe)->curr_master = node_num;
OCFS_BH_PUT_DATA(fe_bh);
status = ocfs_write_bh(osb, fe_bh, 0, inode);
if (status < 0)
@@ -995,13 +995,13 @@
fe = (ocfs_file_entry *) OCFS_BH_GET_DATA_READ(fe_bh); /* read */
is_dir = fe->attribs & OCFS_ATTRIB_DIRECTORY;
- is_locked = DISK_LOCK_FILE_LOCK (fe) > OCFS_DLM_NO_LOCK;
+ is_locked = DISK_LOCK(fe)->file_lock > OCFS_DLM_NO_LOCK;
if (vote_type == CHANGE_MASTER) {
OCFS_BH_PUT_DATA(fe_bh);
fe = (ocfs_file_entry *) OCFS_BH_GET_DATA_WRITE(fe_bh); /* write */
if (inode && OCFS_I(inode)->open_hndl_cnt)
- DISK_LOCK_OIN_MAP (fe) |= (1 << osb->node_num);
- DISK_LOCK_CURRENT_MASTER (fe) = node_num;
+ DISK_LOCK(fe)->oin_node_map |= (1 << osb->node_num);
+ DISK_LOCK(fe)->curr_master = node_num;
}
OCFS_BH_PUT_DATA(fe_bh);
@@ -1013,7 +1013,7 @@
if (vote_type == RELEASE_CACHE) {
LOG_TRACE_STR("release cache vote, setting to NO_LOCK");
fe = (ocfs_file_entry *) OCFS_BH_GET_DATA_WRITE(fe_bh); /* write */
- DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_NO_LOCK;
+ DISK_LOCK(fe)->file_lock = OCFS_DLM_NO_LOCK;
OCFS_BH_PUT_DATA(fe_bh);
}
status = ocfs_write_bh(osb, fe_bh, 0, inode);
@@ -1055,8 +1055,8 @@
OCFS_BH_PUT_DATA(fe_bh);
fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(fe_bh); /* write */
- DISK_LOCK_OIN_MAP (fe) |= (1 << node_num);
- tmpmap = DISK_LOCK_OIN_MAP (fe);
+ DISK_LOCK(fe)->oin_node_map |= (1 << node_num);
+ tmpmap = DISK_LOCK(fe)->oin_node_map;
OCFS_BH_PUT_DATA(fe_bh);
/* Write new map on the disk */
Modified: trunk/src/sysfile.c
===================================================================
--- trunk/src/sysfile.c 2004-06-02 16:16:53 UTC (rev 971)
+++ trunk/src/sysfile.c 2004-06-02 18:19:49 UTC (rev 972)
@@ -355,8 +355,8 @@
fe->alloc_size += actualLength;
fe->file_size = FileSize;
- DISK_LOCK_CURRENT_MASTER (fe) = osb->node_num;
- DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_ENABLE_CACHE_LOCK;
+ DISK_LOCK(fe)->curr_master = osb->node_num;
+ DISK_LOCK(fe)->file_lock = OCFS_DLM_ENABLE_CACHE_LOCK;
OCFS_BH_PUT_DATA(fe_bh);
fe = NULL;
Modified: trunk/src/volcfg.c
===================================================================
--- trunk/src/volcfg.c 2004-06-02 16:16:53 UTC (rev 971)
+++ trunk/src/volcfg.c 2004-06-02 18:19:49 UTC (rev 972)
@@ -363,10 +363,10 @@
disk_lock = (ocfs_disk_lock *) lock_buf;
- lock_node_num = DISK_LOCK_CURRENT_MASTER(disk_lock);
+ lock_node_num = disk_lock->curr_master;
- if (DISK_LOCK_FILE_LOCK (disk_lock) == 0 || break_lock) {
- if (DISK_LOCK_FILE_LOCK (disk_lock) != 0)
+ if (disk_lock->file_lock == 0 || break_lock) {
+ if (disk_lock->file_lock != 0)
LOG_TRACE_STR ("Try to break node config lock");
else
LOG_TRACE_STR ("Lock node config");
@@ -374,8 +374,8 @@
/* Attempt to lock volcfg */
memcpy(disk_lock, cfg_buf, osb->sect_size);
- DISK_LOCK_CURRENT_MASTER (disk_lock) = osb->node_num;
- DISK_LOCK_FILE_LOCK (disk_lock) = 1;
+ disk_lock->curr_master = osb->node_num;
+ disk_lock->file_lock = 1;
memcpy(cfg_buf, disk_lock, osb->sect_size);
/* Write into volcfg lock sector... */
@@ -421,9 +421,9 @@
/* Write the config info into the disk */
disk_lock = (ocfs_disk_lock *) cfg_buf;
- DISK_LOCK_CURRENT_MASTER (disk_lock) =
+ disk_lock->curr_master =
OCFS_INVALID_NODE_NUM;
- DISK_LOCK_FILE_LOCK (disk_lock) = 0;
+ disk_lock->file_lock = 0;
if (op == OCFS_VOLCFG_ADD)
status = ocfs_add_to_disk_config (osb, node_num,
@@ -440,11 +440,11 @@
break;
} else {
disk_lock = (ocfs_disk_lock *) lock_buf;
- if (DISK_LOCK_CURRENT_MASTER (disk_lock) == lock_node_num)
+ if (disk_lock->curr_master == lock_node_num)
break_lock = 1;
else {
LOG_TRACE_ARGS ("Node config locked by node: %d\n",
- DISK_LOCK_CURRENT_MASTER (disk_lock));
+ disk_lock->curr_master);
ocfs_sleep (OCFS_VOLCFG_LOCK_TIME);
}
OCFS_BH_PUT_DATA(bh);
More information about the Ocfs2-commits
mailing list