diff --git a/fs/orangefs/dir.c b/fs/orangefs/dir.c index f30b6ecacdd19595cca35f8a6711eaedc3c0ef04..ba7dec40771e6d902e43551efcba9f528034faf1 100644 --- a/fs/orangefs/dir.c +++ b/fs/orangefs/dir.c @@ -235,7 +235,7 @@ static int orangefs_readdir(struct file *file, struct dir_context *ctx) if (ret == -EIO && op_state_purged(new_op)) { gossip_err("%s: Client is down. Aborting readdir call.\n", __func__); - goto out_slot; + goto out_free_op; } if (ret < 0 || new_op->downcall.status != 0) { @@ -244,14 +244,14 @@ static int orangefs_readdir(struct file *file, struct dir_context *ctx) new_op->downcall.status); if (ret >= 0) ret = new_op->downcall.status; - goto out_slot; + goto out_free_op; } dents_buf = new_op->downcall.trailer_buf; if (dents_buf == NULL) { gossip_err("Invalid NULL buffer in readdir response\n"); ret = -ENOMEM; - goto out_slot; + goto out_free_op; } bytes_decoded = decode_dirents(dents_buf, new_op->downcall.trailer_size, @@ -363,8 +363,6 @@ static int orangefs_readdir(struct file *file, struct dir_context *ctx) out_vfree: gossip_debug(GOSSIP_DIR_DEBUG, "vfree %p\n", dents_buf); vfree(dents_buf); -out_slot: - orangefs_readdir_index_put(buffer_index); out_free_op: op_release(new_op); gossip_debug(GOSSIP_DIR_DEBUG, "orangefs_readdir returning %d\n", ret); diff --git a/fs/orangefs/protocol.h b/fs/orangefs/protocol.h index 45ce4ff4cbc79b6c9a1d324a7e0794ce2b94ddfc..50578a28bd9ea64976cfeb59182b0ae21b038384 100644 --- a/fs/orangefs/protocol.h +++ b/fs/orangefs/protocol.h @@ -407,7 +407,7 @@ enum { * space. Zero signifies the upstream version of the kernel module. */ #define ORANGEFS_KERNEL_PROTO_VERSION 0 -#define ORANGEFS_MINIMUM_USERSPACE_VERSION 20904 +#define ORANGEFS_MINIMUM_USERSPACE_VERSION 20903 /* * describes memory regions to map in the ORANGEFS_DEV_MAP ioctl.