diff options
Diffstat (limited to 'api/src/glfs-fops.c')
| -rw-r--r-- | api/src/glfs-fops.c | 34 | 
1 files changed, 34 insertions, 0 deletions
diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c index 4bc0bb1b6..fbc9f4b49 100644 --- a/api/src/glfs-fops.c +++ b/api/src/glfs-fops.c @@ -2666,6 +2666,40 @@ out:  int +glfs_discard (struct glfs_fd *glfd, off_t offset, size_t len) +{ +	int              ret = -1; +	xlator_t        *subvol = NULL; +	fd_t		*fd = NULL; + +	__glfs_entry_fd (glfd); + +	subvol = glfs_active_subvol (glfd->fs); +	if (!subvol) { +		ret = -1; +		errno = EIO; +		goto out; +	} + +	fd = glfs_resolve_fd (glfd->fs, subvol, glfd); +	if (!fd) { +		ret = -1; +		errno = EBADFD; +		goto out; +	} + +	ret = syncop_discard (subvol, fd, offset, len); +out: +	if (fd) +		fd_unref(fd); + +	glfs_subvol_done (glfd->fs, subvol); + +	return ret; +} + + +int  glfs_chdir (struct glfs *fs, const char *path)  {  	int              ret = -1;  | 
