1. A non-transitory computer readable medium comprising software instructions that, when executed, perform a method for preserving data stored in a file system comprising a plurality of files, comprising: determining whether storage capacity of the file system has reached a threshold level, wherein the threshold level is stored in at least one of a plurality of size-reducing policies; obtaining at least one criterion from the at least one size-reducing policy; identifying a first file and a second file of the plurality of files that match the at least one criterion; accessing metadata of each of the first file and the second file, wherein the metadata of the first file is stored as a file system attribute, and the metadata of the second file is stored as an extended attribute, and wherein the metadata of the first and second files comprises at least one option for reducing a size of the first file and a size of the second file, respectively; performing a first size-reducing action to reduce the size of the first file by calling a kernel-level service to perform the size-reducing action on the first file; and performing a second size-reducing action to reduce the size of the second file, wherein the second size-reducing action is performed by an external user-land service configured to access the extended file attribute on behalf of the file system.