Deleted Added
full compact
29a30
> #include <sys/fm/fs/zfs.h>
142c143
< static void
---
> static int
149a151
> int err;
155,156c157,158
< (void) vn_remove(dp->scd_path, UIO_SYSSPACE, RMFILE);
< return;
---
> err = vn_remove(dp->scd_path, UIO_SYSSPACE, RMFILE);
> return (err);
177,182c179,186
< if (vn_open(temp, UIO_SYSSPACE, oflags, 0644, &vp, CRCREAT, 0) == 0) {
< if (vn_rdwr(UIO_WRITE, vp, buf, buflen, 0, UIO_SYSSPACE,
< 0, RLIM64_INFINITY, kcred, NULL) == 0 &&
< VOP_FSYNC(vp, FSYNC, kcred, NULL) == 0) {
< (void) vn_rename(temp, dp->scd_path, UIO_SYSSPACE);
< }
---
> err = vn_open(temp, UIO_SYSSPACE, oflags, 0644, &vp, CRCREAT, 0);
> if (err == 0) {
> err = vn_rdwr(UIO_WRITE, vp, buf, buflen, 0, UIO_SYSSPACE,
> 0, RLIM64_INFINITY, kcred, NULL);
> if (err == 0)
> err = VOP_FSYNC(vp, FSYNC, kcred, NULL);
> if (err == 0)
> err = vn_rename(temp, dp->scd_path, UIO_SYSSPACE);
189a194
> return (err);
200a206,207
> boolean_t ccw_failure;
> int error;
211a219
> ccw_failure = B_FALSE;
252c260,262
< spa_config_write(dp, nvl);
---
> error = spa_config_write(dp, nvl);
> if (error != 0)
> ccw_failure = B_TRUE;
255a266,285
> if (ccw_failure) {
> /*
> * Keep trying so that configuration data is
> * written if/when any temporary filesystem
> * resource issues are resolved.
> */
> if (target->spa_ccw_fail_time == 0) {
> zfs_ereport_post(FM_EREPORT_ZFS_CONFIG_CACHE_WRITE,
> target, NULL, NULL, 0, 0);
> }
> target->spa_ccw_fail_time = gethrtime();
> spa_async_request(target, SPA_ASYNC_CONFIG_UPDATE);
> } else {
> /*
> * Do not rate limit future attempts to update
> * the config cache.
> */
> target->spa_ccw_fail_time = 0;
> }
>