Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
This commit is contained in:
commit
be5b2d1154
|
@ -94,6 +94,8 @@ int zio_buf_debug_limit = 16384;
|
||||||
int zio_buf_debug_limit = 0;
|
int zio_buf_debug_limit = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static inline void __zio_execute(zio_t *zio);
|
||||||
|
|
||||||
void
|
void
|
||||||
zio_init(void)
|
zio_init(void)
|
||||||
{
|
{
|
||||||
|
@ -454,7 +456,7 @@ zio_notify_parent(zio_t *pio, zio_t *zio, enum zio_wait_type wait)
|
||||||
if (--*countp == 0 && pio->io_stall == countp) {
|
if (--*countp == 0 && pio->io_stall == countp) {
|
||||||
pio->io_stall = NULL;
|
pio->io_stall = NULL;
|
||||||
mutex_exit(&pio->io_lock);
|
mutex_exit(&pio->io_lock);
|
||||||
zio_execute(pio);
|
__zio_execute(pio);
|
||||||
} else {
|
} else {
|
||||||
mutex_exit(&pio->io_lock);
|
mutex_exit(&pio->io_lock);
|
||||||
}
|
}
|
||||||
|
@ -1125,8 +1127,23 @@ zio_interrupt(zio_t *zio)
|
||||||
*/
|
*/
|
||||||
static zio_pipe_stage_t *zio_pipeline[];
|
static zio_pipe_stage_t *zio_pipeline[];
|
||||||
|
|
||||||
|
/*
|
||||||
|
* zio_execute() is a wrapper around the static function
|
||||||
|
* __zio_execute() so that we can force __zio_execute() to be
|
||||||
|
* inlined. This reduces stack overhead which is important
|
||||||
|
* because __zio_execute() is called recursively in several zio
|
||||||
|
* code paths. zio_execute() itself cannot be inlined because
|
||||||
|
* it is externally visible.
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
zio_execute(zio_t *zio)
|
zio_execute(zio_t *zio)
|
||||||
|
{
|
||||||
|
__zio_execute(zio);
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__((always_inline))
|
||||||
|
static inline void
|
||||||
|
__zio_execute(zio_t *zio)
|
||||||
{
|
{
|
||||||
zio->io_executor = curthread;
|
zio->io_executor = curthread;
|
||||||
|
|
||||||
|
@ -1172,6 +1189,7 @@ zio_execute(zio_t *zio)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ==========================================================================
|
* ==========================================================================
|
||||||
* Initiate I/O, either sync or async
|
* Initiate I/O, either sync or async
|
||||||
|
@ -1187,7 +1205,7 @@ zio_wait(zio_t *zio)
|
||||||
|
|
||||||
zio->io_waiter = curthread;
|
zio->io_waiter = curthread;
|
||||||
|
|
||||||
zio_execute(zio);
|
__zio_execute(zio);
|
||||||
|
|
||||||
mutex_enter(&zio->io_lock);
|
mutex_enter(&zio->io_lock);
|
||||||
while (zio->io_executor != NULL)
|
while (zio->io_executor != NULL)
|
||||||
|
@ -1217,7 +1235,7 @@ zio_nowait(zio_t *zio)
|
||||||
zio_add_child(spa->spa_async_zio_root, zio);
|
zio_add_child(spa->spa_async_zio_root, zio);
|
||||||
}
|
}
|
||||||
|
|
||||||
zio_execute(zio);
|
__zio_execute(zio);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1272,7 +1290,7 @@ zio_reexecute(zio_t *pio)
|
||||||
* responsibility of the caller to wait on him.
|
* responsibility of the caller to wait on him.
|
||||||
*/
|
*/
|
||||||
if (!(pio->io_flags & ZIO_FLAG_GODFATHER))
|
if (!(pio->io_flags & ZIO_FLAG_GODFATHER))
|
||||||
zio_execute(pio);
|
__zio_execute(pio);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue