ZFS snapshot issue.

I 've a weired situation .. my system has zfs root as its file system and now root file system is full at 100%

# zfs list
NAME                                     USED  AVAIL  REFER  MOUNTPOINT
rpool                                       134G  65.2M    94K  /rpool
rpool/ROOT                              29.8G  65.2M    18K  legacy
rpool/ROOT/s10s_u6                  29.8G  65.2M    22.34G  /
rpool/ROOT/s10s_u6@prepatch    7.7G      -        22.3G  -
rpool/dump                               4.00G  65.2M   4.00G  -
rpool/metadb                              10M  67.2M   8.05M  -
rpool/metadb1                             10M  67.2M  8.05M  -
rpool/swap                               100G   100G    16K  -
# df -h /
Filesystem             size   used  avail capacity  Mounted on
rpool/ROOT/s10s_u6
                       134G    21G    65M   100%    /

now if i delete something from the / directory it does not free up any space as the freed up space is taken by the modified snapshot. I want to keep my snapshot and decrease the usage too .. how shuld it do that ?

That's contradictory, you tell you want to delete data to free space but on the other hand, you want to keep that same data (in the snapshot).

To free space, you can send that snapshot to an external storage and destroy it when done.

Alternatively, you can enable compression on existing filesystems but the effect won't be immediate.