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 909529 Details for
Bug 850426
gfs2: Add xgetdents syscall to the kernel
[?]
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]
Second patch
rename_delete_workqueue_2of3.patch (text/plain), 4.43 KB, created by
Abhijith Das
on 2014-06-17 11:14:37 UTC
(
hide
)
Description:
Second patch
Filename:
MIME Type:
Creator:
Abhijith Das
Created:
2014-06-17 11:14:37 UTC
Size:
4.43 KB
patch
obsolete
>commit 5eee3dc00789ceb94ba8226e98d61e5736d2a515 >Author: Abhi Das <adas@redhat.com> >Date: Tue Jun 17 05:41:37 2014 -0500 > > gfs2: rename delete workqueue to ra_and_del workqueue > > So we can repurpose the less used delete workqueue to do > additional work of reading ahead rddir inodes > > Signed-off-by: Abhi Das <adas@redhat.com> > >diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c >index aec7f73..1965148 100644 >--- a/fs/gfs2/glock.c >+++ b/fs/gfs2/glock.c >@@ -63,7 +63,7 @@ static void do_xmote(struct gfs2_glock *gl, struct gfs2_holder *gh, unsigned int > > static struct dentry *gfs2_root; > static struct workqueue_struct *glock_workqueue; >-struct workqueue_struct *gfs2_delete_workqueue; >+struct workqueue_struct *gfs2_ra_and_del_workqueue; > static LIST_HEAD(lru_list); > static atomic_t lru_count = ATOMIC_INIT(0); > static DEFINE_SPINLOCK(lru_lock); >@@ -632,9 +632,9 @@ out_unlock: > return; > } > >-static void delete_work_func(struct work_struct *work) >+static void ra_and_del_work_func(struct work_struct *work) > { >- struct gfs2_glock *gl = container_of(work, struct gfs2_glock, gl_delete); >+ struct gfs2_glock *gl = container_of(work, struct gfs2_glock, gl_ra_and_del); > struct gfs2_sbd *sdp = gl->gl_sbd; > struct gfs2_inode *ip; > struct inode *inode; >@@ -766,7 +766,7 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number, > gl->gl_object = NULL; > gl->gl_hold_time = GL_GLOCK_DFT_HOLD; > INIT_DELAYED_WORK(&gl->gl_work, glock_work_func); >- INIT_WORK(&gl->gl_delete, delete_work_func); >+ INIT_WORK(&gl->gl_ra_and_del, ra_and_del_work_func); > > mapping = gfs2_glock2aspace(gl); > if (mapping) { >@@ -1838,10 +1838,10 @@ int __init gfs2_glock_init(void) > WQ_HIGHPRI | WQ_FREEZABLE, 0); > if (!glock_workqueue) > return -ENOMEM; >- gfs2_delete_workqueue = alloc_workqueue("delete_workqueue", >+ gfs2_ra_and_del_workqueue = alloc_workqueue("ra_and_del_workqueue", > WQ_MEM_RECLAIM | WQ_FREEZABLE, > 0); >- if (!gfs2_delete_workqueue) { >+ if (!gfs2_ra_and_del_workqueue) { > destroy_workqueue(glock_workqueue); > return -ENOMEM; > } >@@ -1855,7 +1855,7 @@ void gfs2_glock_exit(void) > { > unregister_shrinker(&glock_shrinker); > destroy_workqueue(glock_workqueue); >- destroy_workqueue(gfs2_delete_workqueue); >+ destroy_workqueue(gfs2_ra_and_del_workqueue); > } > > static inline struct gfs2_glock *glock_hash_chain(unsigned hash) >diff --git a/fs/gfs2/glock.h b/fs/gfs2/glock.h >index 32572f7..2f89fcb 100644 >--- a/fs/gfs2/glock.h >+++ b/fs/gfs2/glock.h >@@ -134,7 +134,7 @@ struct lm_lockops { > const match_table_t *lm_tokens; > }; > >-extern struct workqueue_struct *gfs2_delete_workqueue; >+extern struct workqueue_struct *gfs2_ra_and_del_workqueue; > static inline struct gfs2_holder *gfs2_glock_is_locked_by_me(struct gfs2_glock *gl) > { > struct gfs2_holder *gh; >diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c >index 0b52793..789fb2a 100644 >--- a/fs/gfs2/glops.c >+++ b/fs/gfs2/glops.c >@@ -547,7 +547,7 @@ static void iopen_go_callback(struct gfs2_glock *gl, bool remote) > if (gl->gl_demote_state == LM_ST_UNLOCKED && > gl->gl_state == LM_ST_SHARED && ip) { > gl->gl_lockref.count++; >- if (queue_work(gfs2_delete_workqueue, &gl->gl_delete) == 0) >+ if (queue_work(gfs2_ra_and_del_workqueue, &gl->gl_ra_and_del) == 0) > gl->gl_lockref.count--; > } > } >diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h >index 2434a96..5f273be 100644 >--- a/fs/gfs2/incore.h >+++ b/fs/gfs2/incore.h >@@ -353,7 +353,7 @@ struct gfs2_glock { > struct delayed_work gl_work; > union { > /* For inode and iopen glocks only */ >- struct work_struct gl_delete; >+ struct work_struct gl_ra_and_del; > /* For rgrp glocks only */ > struct { > loff_t start; >diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c >index db629d1..43acf01 100644 >--- a/fs/gfs2/rgrp.c >+++ b/fs/gfs2/rgrp.c >@@ -1764,7 +1764,7 @@ static void try_rgrp_unlink(struct gfs2_rgrpd *rgd, u64 *last_unlinked, u64 skip > */ > ip = gl->gl_object; > >- if (ip || queue_work(gfs2_delete_workqueue, &gl->gl_delete) == 0) >+ if (ip || queue_work(gfs2_ra_and_del_workqueue, &gl->gl_ra_and_del) == 0) > gfs2_glock_put(gl); > else > found++; >diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c >index 1319b5c..e047c7c 100644 >--- a/fs/gfs2/super.c >+++ b/fs/gfs2/super.c >@@ -849,7 +849,7 @@ static int gfs2_make_fs_ro(struct gfs2_sbd *sdp) > kthread_stop(sdp->sd_quotad_process); > kthread_stop(sdp->sd_logd_process); > >- flush_workqueue(gfs2_delete_workqueue); >+ flush_workqueue(gfs2_ra_and_del_workqueue); > gfs2_quota_sync(sdp->sd_vfs, 0); > gfs2_statfs_sync(sdp->sd_vfs, 0); >
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 850426
:
605960
|
617073
|
625592
|
678841
|
680222
|
680282
|
708389
|
731269
|
731270
|
731272
|
731273
|
731274
|
731278
|
731279
|
732739
|
732740
|
732845
|
834840
|
853502
|
909528
|
909529
|
909534
|
912745
|
917238
|
917239
|
920895
|
920896
|
920897
|
920898
|
920899
|
920902
|
920903
|
947987