Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F157505018
D20741.id59060.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D20741.id59060.diff
View Options
Index: head/sys/ufs/ffs/ffs_softdep.c
===================================================================
--- head/sys/ufs/ffs/ffs_softdep.c
+++ head/sys/ufs/ffs/ffs_softdep.c
@@ -2110,7 +2110,6 @@
* Look up a pagedep. Return 1 if found, 0 otherwise.
* If not found, allocate if DEPALLOC flag is passed.
* Found or allocated entry is returned in pagedeppp.
- * This routine must be called with splbio interrupts blocked.
*/
static int
pagedep_lookup(mp, bp, ino, lbn, flags, pagedeppp)
@@ -2202,7 +2201,6 @@
* Look up an inodedep. Return 1 if found, 0 if not found.
* If not found, allocate if DEPALLOC flag is passed.
* Found or allocated entry is returned in inodedeppp.
- * This routine must be called with splbio interrupts blocked.
*/
static int
inodedep_lookup(mp, inum, flags, inodedeppp)
@@ -5478,7 +5476,6 @@
/*
* Replace an old allocdirect dependency with a newer one.
- * This routine must be called with splbio interrupts blocked.
*/
static void
allocdirect_merge(adphead, newadp, oldadp)
@@ -7534,7 +7531,6 @@
/*
* Free a newdirblk. Clear the NEWBLOCK flag on its associated pagedep.
- * This routine must be called with splbio interrupts blocked.
*/
static void
free_newdirblk(newdirblk)
@@ -7665,7 +7661,6 @@
/*
* Check to see if an inode has never been written to disk. If
* so free the inodedep and return success, otherwise return failure.
- * This routine must be called with splbio interrupts blocked.
*
* If we still have a bitmap dependency, then the inode has never
* been written to disk. Drop the dependency as it is no longer
@@ -8897,8 +8892,7 @@
}
/*
- * Free a diradd dependency structure. This routine must be called
- * with splbio interrupts blocked.
+ * Free a diradd dependency structure.
*/
static void
free_diradd(dap, wkhd)
@@ -11195,9 +11189,7 @@
}
/*
- * Called from within softdep_disk_write_complete above. Note that
- * this routine is always called from interrupt level with further
- * splbio interrupts blocked.
+ * Called from within softdep_disk_write_complete above.
*/
static void
handle_allocdirect_partdone(adp, wkhd)
@@ -11209,6 +11201,7 @@
struct inodedep *inodedep;
long bsize;
+ LOCK_OWNED(VFSTOUFS(adp->ad_block.nb_list.wk_mp));
if ((adp->ad_state & ALLCOMPLETE) != ALLCOMPLETE)
return;
/*
@@ -11818,7 +11811,6 @@
/*
* Process a diradd entry after its dependent inode has been written.
- * This routine must be called with splbio interrupts blocked.
*/
static void
diradd_inode_written(dap, inodedep)
@@ -11826,6 +11818,7 @@
struct inodedep *inodedep;
{
+ LOCK_OWNED(VFSTOUFS(dap->da_list.wk_mp));
dap->da_state |= COMPLETE;
complete_diradd(dap);
WORKLIST_INSERT(&inodedep->id_pendinghd, &dap->da_list);
@@ -12386,8 +12379,7 @@
/*
* Merge the a new inode dependency list (such as id_newinoupdt) into an
- * old inode dependency list (such as id_inoupdt). This routine must be
- * called with splbio interrupts blocked.
+ * old inode dependency list (such as id_inoupdt).
*/
static void
merge_inode_lists(newlisthead, oldlisthead)
@@ -12397,6 +12389,8 @@
struct allocdirect *listadp, *newadp;
newadp = TAILQ_FIRST(newlisthead);
+ if (newadp != NULL)
+ LOCK_OWNED(VFSTOUFS(newadp->ad_block.nb_list.wk_mp));
for (listadp = TAILQ_FIRST(oldlisthead); listadp && newadp;) {
if (listadp->ad_offset < newadp->ad_offset) {
listadp = TAILQ_NEXT(listadp, ad_next);
@@ -12891,7 +12885,6 @@
/*
* Flush the dependencies associated with an inodedep.
- * Called with splbio blocked.
*/
static int
flush_inodedep_deps(vp, mp, ino)
@@ -12956,7 +12949,6 @@
/*
* Flush an inode dependency list.
- * Called with splbio blocked.
*/
static int
flush_deplist(listhead, waitfor, errorp)
@@ -13098,7 +13090,6 @@
/*
* Eliminate a pagedep dependency by flushing out all its diradd dependencies.
- * Called with splbio blocked.
*/
static int
flush_pagedep_deps(pvp, mp, diraddhdp)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, May 23, 4:27 AM (1 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33440590
Default Alt Text
D20741.id59060.diff (3 KB)
Attached To
Mode
D20741: Remove references to splbio().
Attached
Detach File
Event Timeline
Log In to Comment