Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 693853 Details for
Bug 908093
gfs2: withdraw does not wait for gfs_controld
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
First draft of upstream fix
wd-fix.diff (text/plain), 2.51 KB, created by
Steve Whitehouse
on 2013-02-06 10:19:50 UTC
(
hide
)
Description:
First draft of upstream fix
Filename:
MIME Type:
Creator:
Steve Whitehouse
Created:
2013-02-06 10:19:50 UTC
Size:
2.51 KB
patch
obsolete
>diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h >index 1533cf8..e2601ba 100644 >--- a/fs/gfs2/incore.h >+++ b/fs/gfs2/incore.h >@@ -642,6 +642,7 @@ struct gfs2_sbd { > wait_queue_head_t sd_glock_wait; > atomic_t sd_glock_disposal; > struct completion sd_locking_init; >+ struct completion sd_wdack; > struct delayed_work sd_control_work; > > /* Inode Stuff */ >diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c >index e063f22..1b612be 100644 >--- a/fs/gfs2/ops_fstype.c >+++ b/fs/gfs2/ops_fstype.c >@@ -81,6 +81,7 @@ static struct gfs2_sbd *init_sbd(struct super_block *sb) > init_waitqueue_head(&sdp->sd_glock_wait); > atomic_set(&sdp->sd_glock_disposal, 0); > init_completion(&sdp->sd_locking_init); >+ init_completion(&sdp->sd_wdack); > spin_lock_init(&sdp->sd_statfs_spin); > > spin_lock_init(&sdp->sd_rindex_spin); >diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c >index 462e841..4fb9ad8 100644 >--- a/fs/gfs2/sys.c >+++ b/fs/gfs2/sys.c >@@ -330,6 +330,28 @@ static ssize_t block_store(struct gfs2_sbd *sdp, const char *buf, size_t len) > return ret; > } > >+static ssize_t wdack_show(struct gfs2_sbd *sdp, char *buf) >+{ >+ int val = completion_done(&sdp->sd_wdack) ? 1 : 0; >+ >+ return sprintf(buf, "%d\n", val); >+} >+ >+static ssize_t wdack_store(struct gfs2_sbd *sdp, const char *buf, size_t len) >+{ >+ ssize_t ret = len; >+ int val; >+ >+ val = simple_strtol(buf, NULL, 0); >+ >+ if ((val == 1) && >+ !strcmp(sdp->sd_lockstruct.ls_ops->lm_proto_name, "lock_dlm")) >+ complete(&sdp->sd_wdack); >+ else >+ ret = -EINVAL; >+ return ret; >+} >+ > static ssize_t lkfirst_show(struct gfs2_sbd *sdp, char *buf) > { > struct lm_lockstruct *ls = &sdp->sd_lockstruct; >@@ -461,7 +483,7 @@ static struct gfs2_attr gdlm_attr_##_name = __ATTR(_name,_mode,_show,_store) > > GDLM_ATTR(proto_name, 0444, proto_name_show, NULL); > GDLM_ATTR(block, 0644, block_show, block_store); >-GDLM_ATTR(withdraw, 0644, withdraw_show, withdraw_store); >+GDLM_ATTR(withdraw, 0644, wdack_show, wdack_store); > GDLM_ATTR(jid, 0644, jid_show, jid_store); > GDLM_ATTR(first, 0644, lkfirst_show, lkfirst_store); > GDLM_ATTR(first_done, 0444, first_done_show, NULL); >diff --git a/fs/gfs2/util.c b/fs/gfs2/util.c >index f00d7c5..6402fb6 100644 >--- a/fs/gfs2/util.c >+++ b/fs/gfs2/util.c >@@ -54,6 +54,9 @@ int gfs2_lm_withdraw(struct gfs2_sbd *sdp, char *fmt, ...) > > kobject_uevent(&sdp->sd_kobj, KOBJ_OFFLINE); > >+ if (!strcmp(sdp->sd_lockstruct.ls_ops->lm_proto_name, "lock_dlm")) >+ wait_for_completion(&sdp->sd_wdack); >+ > if (lm->lm_unmount) { > fs_err(sdp, "telling LM to unmount\n"); > lm->lm_unmount(sdp);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 908093
: 693853 |
714660